📅  最后修改于: 2023-12-03 15:32:01.878000             🧑  作者: Mango
在Java中,类可以实现一个或多个接口。每个接口都是一组方法的声明,而对应的类必须提供这些方法的实现代码。在某些情况下,我们可能需要在运行时确定一个类实现了哪些接口,这时候就可以使用 getGenericInterfaces()
方法来获取一个数组,包含了当前类实现的所有接口的泛型类型信息。
public Type[] getGenericInterfaces()
返回一个 Type 对象的数组,描述了当前类直接实现的所有接口的泛型类型信息。如果当前类没有实现任何接口,则返回长度为 0 的数组。
下面的示例代码演示了如何使用 getGenericInterfaces()
方法来获取一个类实现的所有接口。
import java.lang.reflect.Type;
public class Example implements Comparable<String>, Cloneable {
@Override
public int compareTo(String o) {
return 0;
}
public static void main(String[] args) {
Example example = new Example();
Type[] interfaceTypes = example.getClass().getGenericInterfaces();
for (Type interfaceType : interfaceTypes) {
System.out.println(interfaceType.getTypeName());
}
}
}
在这个示例中,Example
类实现了 Comparable<String>
和 Cloneable
两个接口。我们可以调用 getGenericInterfaces()
方法来获取这两个接口的泛型类型信息,然后遍历输出它们的名称。
输出结果如下:
java.lang.Comparable<java.lang.String>
java.lang.Cloneable
可以看出,我们成功获取了 Example
类实现的两个接口的泛型类型信息。需要注意的是,返回的泛型类型信息并不包含实际类型参数的值,而只是描述了这些类型参数的类型。如果需要获得实际类型参数的值,可以参考 java.lang.reflect.ParameterizedType
接口。