我无法弄清楚能够在Java中注释接口的用例。
也许有人可以举个例子?
答案 0 :(得分:22)
我在Spring中使用它来注释注释应该应用于所有子类的接口。例如,假设您有一个Service接口,并且您可能有多个接口实现,但无论注释如何,您都希望应用安全注释。在这种情况下,最有意义的是注释界面。
答案 1 :(得分:4)
我广泛使用findbugs。我发现使用annotations指定Nullity约束非常有用。即使你实际上没有使用findbugs,它也会使代码的意图更加清晰。这些注释在接口上和Classes一样多。你可以说它是按合同编程的......
答案 2 :(得分:4)
即使没有示例,也应该清楚地解释 - 接口描述行为,注释也是如此,因此将它们放在一起是合乎逻辑的匹配。
答案 3 :(得分:4)
我正在使用的用例是javax / hibernate bean验证,我们使用接口来帮助我们避免在每个特定类上定义验证。
public interface IUser {
@NotNull Long getUserId();
...
}
public class WebUser implements IUser {
private Long userId;
@Override
public Long getUserId(){
return userId;
}
...
}
答案 4 :(得分:1)
答案 5 :(得分:1)
我已经看到很多研究工具使用方法注释来允许用户指定协议,限制等,以便于以后自动检查。
由于注释没有规定你可以用它们做什么,因此没有充分的理由不允许用户注释接口。
答案 6 :(得分:0)
您可以将它用于合同样式编程 - 比仅定义接口(类型和方法名称)更进一步,还定义了一些语义(类型,前置条件,后置条件的内容)。
我必须查看注释如何在Java中工作,但这些东西可以通过Python注释轻松完成......
答案 7 :(得分:0)
在JBoss下部署应用程序时,您可以在接口上使用注释来导出jmx-console中的服务。
答案 8 :(得分:0)
我在定义REST接口时使用过它。 RESTeasy允许您创建使用带注释的接口的REST客户端(在此示例中为RESTInterfaceV1):
final RESTInterfaceV1 client = ProxyFactory.create(RESTInterfaceV1.class, "http://localhost:8080/rest");
虽然必须在实际实现REST接口的对象上复制注释,但是接口本身可以单独分发给那些想要创建Java REST客户端的人。
答案 9 :(得分:0)
我用@Immutable标记我的接口,以便向开发人员明确指出Mutability是否实现了接口应该具有的类。正如格赫尔所说,按合同编程。