有没有办法指定一个多个接口的类型,并且在编译时进行类型检查?
示例:假设我有一个类似
的方法void method (Object o) { ... }
但是我想在编译时将o
限制为同时实现java.lang.reflect.Member
和 java.lang.reflect.AnnotatedElement
的内容(例如Class
,{{1 }},Field
等),并且理想情况下访问两个接口的方法而不强制转换Method
。
在运行时有很多方法可以做到这一点,我对编译时检查特别好奇。
答案 0 :(得分:3)
是的,你可以用泛型来做到这一点。像这样定义你的方法:
<T extends Member & AnnotatedElement> void method (T o){ /* ... */ }