Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-强制实现接口的类声明注释_Java_Annotations_Java Annotations - Fatal编程技术网

Java-强制实现接口的类声明注释

Java-强制实现接口的类声明注释,java,annotations,java-annotations,Java,Annotations,Java Annotations,我试图强制类SomeImpl在实现接口SomeInterface时声明注释@SomeAnnotation。解决方案可以修改接口声明 public interface SomeInterface {} public class SomeImpl implements SomeInterface -> compilation error @SomeAnnotation public class SomeInterfaceImpl implements SomeInterface ->

我试图强制类SomeImpl在实现接口SomeInterface时声明注释@SomeAnnotation。解决方案可以修改接口声明

public interface SomeInterface {}

public class SomeImpl implements SomeInterface -> compilation error

@SomeAnnotation
public class SomeInterfaceImpl implements SomeInterface -> compilation ok

用例:我在一个方法中使用对象实现SomeInterface(不是我写的,它是一个外部库),该方法总是读取@SomeAnnotation的注释,并且它不能为空或默认值


谢谢

这似乎只能使用annotations processor()完成。

您之所以要这样做,是因为…用例是什么?您试图解决什么问题?用例:我使用的对象在一个方法中实现SomeInterface(不是我写的,它是一个外部库),该方法总是读取注释@SomeAnnotation,它不能为空或默认值。我现在提出这个问题。所以写一个代码分析工具来扫描你的代码,寻找这种组合。Java本身无法强制执行您的约束。编写适当的测试,这是唯一的方法。