/**
* 获取类的接口实现信息
* 1.返回实现接口信息的Type数组,包含泛型信息
* 2.返回实现接口信息的Class数组,不包含泛型信息
* 细看一下,就会发现其中端倪,当你的实现接口中不包含泛型时,同样调用1方法,其返回的接口信息必然不带泛型信息的,也就是1中包含2。
*/
1.Type[] java.lang.Class.getGenericInterfaces()
2.Class<?>[] java.lang.Class.getInterfaces()
//1方法的代码
public Type[] getGenericInterfaces() {
ClassRepository info = getGenericInfo();
return (info == null) ? getInterfaces() : info.getSuperInterfaces();
}
demo:
public class ArrayMapDemo {
public static void main(String[] args){
InterfaceDemo iDemo = new ArrayMapDemo().new InterfaceDemo();
for(Type t : iDemo.getClass().getGenericInterfaces()) {
System.out.println(t);
}
System.out.println("--------------------------");
for(Class t : iDemo.getClass().getInterfaces()) {
System.out.println(t);
}
}
class InterfaceDemo<K,V> implements Serializable,Cloneable,Map<K, V> {...}
}
显示结果:
interface java.io.Serializable
interface java.lang.Cloneable
java.util.Map<K, V>
--------------------------
interface java.io.Serializable
interface java.lang.Cloneable
interface java.util.Map