【问题标题】:java generic how to ensure type has specified annotation?java泛型如何确保类型具有指定的注释?
【发布时间】:2018-10-20 11:16:35
【问题描述】:

我正在尝试使用 Java 在 android 中创建一个泛型类,但我想确保该类型将采用具有特定注释的特定类,如下所示: 我有类Table 带有注释@Entity

@Entity
public class Table{}

并且泛型类应该只接受具有@Entity 注释的对象

【问题讨论】:

  • 感谢您的快速接受!并欢迎投票特权!

标签: java android generics annotations android-room


【解决方案1】:

简单的答案:不可能。

注解表示在使用泛型类型参数构造类时不可用的元信息。

【讨论】:

    【解决方案2】:

    如果你想检查类注释,你必须使用反射
    http://static.javadoc.io/org.reflections/reflections/0.9.10/org/reflections/Reflections.html getTypesAnnotatedWith是你需要的功能

    final Reflections reflections = new Reflections(packagePrefix);
        final Set<Class<?>> namedClasses = reflections.getTypesAnnotatedWith(Named.class);
        for (final Class<?> namedClass : namedClasses) {
    
        }
    

    【讨论】:

    • 这不是他想要的。
    猜你喜欢
    • 1970-01-01
    • 2021-07-14
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    相关资源
    最近更新 更多