我想知道是否可以创建一个强制执行特定返回类型的Java Annotation?

时间:2010-08-17 17:08:00

标签: java annotations

我想知道是否可以创建一个强制执行特定退货类型的Annotation

我想要的是一种创建Annotation并使用它的方法:

@MarkerAnnotationForcingStringReturnType
public String someWebflowMethod(...){
    ...
    return "someString";
}

然后我可以拥有我想要的任何方法名称,但它必须返回,例如String

3 个答案:

答案 0 :(得分:7)

方法签名本身是否强制执行特定的返回类型?

答案 1 :(得分:4)

您可以创建自己的注释,然后编写自己的annotation processor来强制执行注释。

我不知道有一个内置......坦率地说,我不确定我是否明白这一点。如果你要保持足够的警惕来编写注释,为什么你不会保持警惕以使方法返回类型正确?在什么情况下你会得到正确的注释,但方法是错误的?

答案 2 :(得分:0)

注释本身就是元数据 - 也就是说,“注释”附加到代码位并且包含在字节码本身中(可能)。

您可以使用apt编写一个处理器,如果您真的想要在编译时对其进行验证。

但是我发现声明一个返回String的方法与典型的Java开发人员一样强大且易于理解。你真的有充分理由这样做吗?如果您担心某人可能会更改返回类型,他们可能会轻松删除您的注释。如果你想阻止某些人进行这些更改,评论可能会比他们可能因为“多余”而删除的注释更多有效(嘿,我们谈论的是你期待的开发人员)通过无能/缺乏意识使这里的基本要求无效......)。