Java 判断泛型类型实现方法

步骤表格

步骤 操作
1 获取泛型的实际类型参数数组
2 判断实际类型参数数组中的类型
3 根据类型进行相应操作

操作步骤

  1. 获取泛型的实际类型参数数组

    • 使用getClass().getGenericSuperclass()方法获取泛型类型
    Type type = getClass().getGenericSuperclass();
    
  2. 判断实际类型参数数组中的类型

    • 强制转换为ParameterizedType类型,并获取泛型参数类型数组
    • 判断泛型参数类型是否为目标类型
    if (type instanceof ParameterizedType) {
        Type[] typeArguments = ((ParameterizedType) type).getActualTypeArguments();
        for (Type typeArgument : typeArguments) {
            if (typeArgument instanceof Class) {
                if (typeArgument == String.class) {
                    System.out.println("泛型参数类型为String");
                } else if (typeArgument == Integer.class) {
                    System.out.println("泛型参数类型为Integer");
                }
            }
        }
    }
    
  3. 根据类型进行相应操作

    • 根据不同的泛型参数类型执行不同的操作
    // 假设泛型参数为String类型
    if (typeArgument == String.class) {
        // 执行String类型的操作
        System.out.println("执行String类型的操作");
    }
    
    // 假设泛型参数为Integer类型
    else if (typeArgument == Integer.class) {
        // 执行Integer类型的操作
        System.out.println("执行Integer类型的操作");
    }
    

序列图

sequenceDiagram
    participant Developer
    participant Newbie
    
    Developer->>Newbie: 获取泛型的实际类型参数数组
    Developer->>Newbie: 判断实际类型参数数组中的类型
    Developer->>Newbie: 根据类型进行相应操作
    Newbie->>Developer: 学习并执行步骤

通过以上步骤和示例代码,你可以成功实现Java中判断泛型类型的方法。希望对你有所帮助,加油!