将变量声明为多个接口

时间:2016-07-24 21:39:02

标签: java variable-declaration

有没有办法指定一个多个接口的类型,并且在编译时进行类型检查?

示例:假设我有一个类似

的方法
void method (Object o) { ... }

但是我想在编译时将o限制为同时实现java.lang.reflect.Member java.lang.reflect.AnnotatedElement的内容(例如Class,{{1 }},Field等),并且理想情况下访问两个接口的方法而不强制转换Method

在运行时有很多方法可以做到这一点,我对编译时检查特别好奇。

1 个答案:

答案 0 :(得分:3)

是的,你可以用泛型来做到这一点。像这样定义你的方法:

<T extends Member & AnnotatedElement> void method (T o){ /* ... */ }