相关疑难解决方法(0)

java中的注释继承是否有类似内容?

我正在探索注释,并且发现某些注释似乎在它们之间具有层次结构.

我正在使用注释在后台为卡片生成代码.存在不同的卡类型(因此不同的代码和注释)但是在它们之间存在某些共同的元素,如名称.

@Target(value = {ElementType.TYPE})
public @interface Move extends Page{
 String method1();
 String method2();
}
Run Code Online (Sandbox Code Playgroud)

这将是常见的注释:

@Target(value = {ElementType.TYPE})
public @interface Page{
 String method3();
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我希望Move继承方法3但是我得到一个警告,说扩展对注释无效.我试图让Annotation扩展一个共同的基础,但这不起作用.这是可能的还是只是一个设计问题?

java inheritance annotations

110
推荐指数
4
解决办法
8万
查看次数

如何检查注释的相等性?

你会如何实现这个方法:

public boolean equal(Annotation a1, Annotation a2) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

示例输入():

@First(name="1", value="1"), @Second(name="1", value="1")
@First(value="2"),           @First(name="2")
@First(value="3"),           @First(value="3")
@Second(name="4", value="4), @Second(name="4", value="4")
Run Code Online (Sandbox Code Playgroud)

样本输出:

false
false
true
true
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,预期的行为equal是明确的,类似于equalsjava中常规对象的标准方法的预期行为(问题是我们无法覆盖equals注释).

有没有libs或标准实现?

java annotations equals

6
推荐指数
1
解决办法
2804
查看次数

Java 创建一个包含注释值的最终字段,以便在许多方法上重用它

在Java中是否可以将注释值存储在常量字段(或类似字段)中,以便在需要的每个方法上重用它?例如,如果我有这个带注释的方法:

@CustomAnnotations({
    @CustomAnnotation(..),
    @CustomAnnotation(..),
    @CustomAnnotation(..),
    @CustomAnnotation(..),
    ...
    @CustomAnnotation(..)
})
private static MyReturnValue doSomething(){
    ..
}
Run Code Online (Sandbox Code Playgroud)

我想向同一个类中的许多方法添加相同的注释,而不需要为每个方法剪切和粘贴它,是否可以定义一个字段,例如:

private static final Something annotationsConstant = {
    @CustomAnnotation(..),
    @CustomAnnotation(..),
    @CustomAnnotation(..),
    @CustomAnnotation(..),
    ...
    @CustomAnnotation(..)
}

@CustomAnnotatins(annotationsConstant)    
private static MyReturnValue doSomething(){
    ..
}

@CustomAnnotatins(annotationsConstant)    
private static MyReturnValue anotherMethod(){
    ..
}
Run Code Online (Sandbox Code Playgroud)

如果是,包含注释的字段的数据类型是什么?如果没有,是否有另一种方法无需为每个方法重写相同的注释?

java annotations

5
推荐指数
1
解决办法
2129
查看次数

标签 统计

annotations ×3

java ×3

equals ×1

inheritance ×1