📜  Java中的类 getGenericInterfaces() 方法和示例(1)

📅  最后修改于: 2023-12-03 15:32:01.878000             🧑  作者: Mango

Java中的类 getGenericInterfaces() 方法和示例

在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 接口。