相关疑难解决方法(0)

如何从Constant java为注释提供值

我认为这在Java中是不可能的,因为注释及其参数在编译时被解析.我有一个如下界面,

public interface FieldValues {
   String[] FIELD1 = new String[]{"value1", "value2"};
}
Run Code Online (Sandbox Code Playgroud)

和另一个班级,

@SomeAnnotation(locations = {"value1", "value2"})
public class MyClass {
   ....
}
Run Code Online (Sandbox Code Playgroud)

我用注释标记了很多类,我想知道我是否可以避免在每个注释中指定字符串而我更愿意使用

@SomeAnnotation(locations = FieldValues.FIELD1)
public class MyClass {
   ....
}
Run Code Online (Sandbox Code Playgroud)

但是这会产生编译错误,例如注释值应该是数组初始化器等.有人知道如何使用String常量或String []常量来为注释提供值吗?

java arrays annotations

134
推荐指数
5
解决办法
15万
查看次数

java注释可以像HashMap一样具有复杂的返回类型

注释可以具有复杂的返回类型,例如HashMap.

我正在寻找类似的东西:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface column {
    public HashMap<String, String> table();
}
Run Code Online (Sandbox Code Playgroud)

所以我可以有一个常量注释(伪代码):

@column({table=(dbName, tableName), table=(dbName, tableName2)})
public static final String USER_ID = "userid";
Run Code Online (Sandbox Code Playgroud)

如果Annotation不允许你有复杂的返回类型,那么对于这种情况有什么好的做法吗?

java collections annotations

24
推荐指数
2
解决办法
2万
查看次数

包含其他注释的注释成员?

我想创建一个自定义注释(使用Java),它将接受其他注释作为参数,如:

public @interface ExclusiveOr {
    Annotation[] value();
}
Run Code Online (Sandbox Code Playgroud)

但这会导致编译器错误"注释成员的无效类型".

对象[]也不起作用.

有办法做我想要的吗?

java annotations

8
推荐指数
2
解决办法
5086
查看次数

基元的 @NotNull 约束,为什么?

刚刚遇到一个错误,问题是我遇到的:

@Column(name = "ACTIVE")
@NotNull
private boolean active;
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我忘记设置该值,但它仍然“有效”,因为布尔值的默认值是 false。我现在已将其更改为Boolean,如果未主动设置,则验证失败。

为什么我可以对@NotNull显然不能的事情施加限制null?这是重构的原因,所以如果我像现在所做的那样更改为布尔值,我仍然保留预期的约束吗?

是否有任何好的想法可以解决这些问题(除了为此目的进行更多测试)?或者我应该避免使用基元?

java constraints notnull

8
推荐指数
1
解决办法
7974
查看次数

如何在@RequestParam()中给出整数的默认值

我是春季靴子和学习的新手@RequestParam()

我知道我们可以在String中给出defaultValue,但是当我尝试将默认值设置为Integer时,它会向我显示错误.

@RequestMapping("/returnVeriable")
public int getVeriable(@RequestParam(required=true,defaultValue=1/*error here*/) int veri){
    return veri;
}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

java spring-boot

8
推荐指数
3
解决办法
1万
查看次数

如何使用Java 8将方法传递给注释?

我想将方法​​传递给注释.这样的事情可能吗?

@MyAnnotation(method = MyClass::myMethod)
private String myVariable;
Run Code Online (Sandbox Code Playgroud)

java annotations java-8

7
推荐指数
2
解决办法
3079
查看次数

在Java中调用注解内的方法

我可以调用一个在注释中返回字符串的方法吗?
如果是这样,请指导我如何实现这一目标?

我尝试过这样,但这对我不起作用。

@Description(value = Resource.getWord("key"))
Run Code Online (Sandbox Code Playgroud)

java annotations

7
推荐指数
1
解决办法
9940
查看次数