我想知道是否可以创建一个强制执行特定退货类型的Annotation
?
我想要的是一种创建Annotation
并使用它的方法:
@MarkerAnnotationForcingStringReturnType
public String someWebflowMethod(...){
...
return "someString";
}
然后我可以拥有我想要的任何方法名称,但它必须返回,例如String
。
答案 0 :(得分:7)
方法签名本身是否强制执行特定的返回类型?
答案 1 :(得分:4)
您可以创建自己的注释,然后编写自己的annotation processor来强制执行注释。
我不知道有一个内置......坦率地说,我不确定我是否明白这一点。如果你要保持足够的警惕来编写注释,为什么你不会保持警惕以使方法返回类型正确?在什么情况下你会得到正确的注释,但方法是错误的?
答案 2 :(得分:0)
注释本身就是元数据 - 也就是说,“注释”附加到代码位并且包含在字节码本身中(可能)。
您可以使用apt编写一个处理器,如果您真的想要在编译时对其进行验证。
但是我发现声明一个返回String
的方法与典型的Java开发人员一样强大且易于理解。你真的有充分理由这样做吗?如果您担心某人可能会更改返回类型,他们可能会轻松删除您的注释。如果你想阻止某些人进行这些更改,评论可能会比他们可能因为“多余”而删除的注释更多有效(嘿,我们谈论的是你期待的开发人员)通过无能/缺乏意识使这里的基本要求无效......)。