【问题标题】:How to return an object in a Java annotation?如何在 Java 注释中返回对象?
【发布时间】:2012-09-04 17:44:08
【问题描述】:

我正在做一个测试注释,我希望能够让用户指定一个预期的返回值。

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Test {
    Object value() default null;
    Class<? extends Throwable> exception() default NoException.class;
    int timeout() default 0;
}

据我所知,您不能将 Object 指定为注释方法中的返回类型。

我想知道是否有允许返回原语和字符串的返回类型。

如果没有,是否可以创建?谢谢。

【问题讨论】:

标签: java annotations


【解决方案1】:

简而言之,没有。 oracle 文档对此进行了解释

返回类型仅限于原始类型、字符串、类、枚举、注释和上述类型的数组。方法可以有默认值

有关这方面的 Oracle 文档,请参见 here

如果你可以传递一个对象,语法是什么?传递的项目必须是常量,这就是限制的原因

【讨论】:

  • 问题明确指出他想要“原语和字符串”。所以没有类实例(字符串除外)。我同意以某种方式应该是可能的。太糟糕了..
猜你喜欢
  • 1970-01-01
  • 2023-04-11
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 2019-11-04
  • 2017-06-19
  • 2020-03-31
  • 1970-01-01
相关资源
最近更新 更多