java泛型如何确保类型已指定注释?

时间:2018-10-20 11:16:36

标签: java android generics annotations android-room

我正在尝试使用Java在android中创建一个通用类,但我想确保该类型采用带有特定注释的特定类,如下所示:  我有class _MyAppState extends State<MyApp>{ @override Widget build(BuildContext context){ return WebviewScaffold( appBar: PreferredSize( preferredSize: Size.fromHeight(3.0), child: AppBar( ), ), url: "https://google.com", ); } }类,带有注释Table

@Entity

并且泛型类应仅接受带有@Entity public class Table{} 批注

的对象

2 个答案:

答案 0 :(得分:1)

如果要检查类注释,则必须使用Reflection
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) {

    }

答案 1 :(得分:1)

简单答案:不可能。

注释表示使用通用类型参数构造类时不可用的元信息。