srcType instanceof Class 及泛型 vs 普通类

srcType instanceof Class

是什么

检查 srcType 是不是普通的类类型(不是泛型)

简单例子

java 复制代码
// 普通类
String str = "hello";
Class<?> clazz = String.class;

boolean result = clazz instanceof Class; // true
java 复制代码
// 泛型类型
List<String> list = new ArrayList<>();
Type type = list.getClass().getGenericSuperclass();

boolean result = type instanceof Class; // false(可能是ParameterizedType)

什么时候用

java 复制代码
if (srcType instanceof Class) {
    // 这是普通类,如 String、Integer
    Class<?> clazz = (Class<?>) srcType;
} else {
    // 这是泛型相关类型
}

一句话理解

判断类型是不是普通的类,不是泛型

泛型 vs 普通类

普通类

类型固定,直接使用

java 复制代码
String str = "hello";        // 只能是String
Integer num = 123;          // 只能是Integer
List list = new ArrayList(); // 可以放任何类型(不安全)

泛型类

类型可变,使用时确定

java 复制代码
List<String> list1 = new ArrayList<>();  // 只能放String
List<Integer> list2 = new ArrayList<>(); // 只能放Integer
Box<String> box = new Box<>();          // T变成String

核心区别

特点 普通类 泛型类
类型 固定 可变
定义 class Box { } class Box<T> { }
使用 new Box() new Box<String>()
安全性 需要类型转换 编译时检查

一句话理解

普通类类型固定,泛型类类型灵活

相关推荐
dishugj8 小时前
HANA集群计划内切换与维护操作
java·linux·数据库
yuniko-n8 小时前
【JUC】线程间通信
java·开发语言
yuniko-n8 小时前
【JUC】关于 Java 线程介绍
java·开发语言
HelloWorld工程师8 小时前
@Primary 注解
java·spring
代码什么用18 小时前
Spring基础使用
java·后端·spring
Su米苏18 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
码云数智-园园19 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁19 小时前
Java 异常体系详解:从字节码原理到最佳实践
java
蜗牛互联网19 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
禾小西19 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis