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>()
安全性 需要类型转换 编译时检查

一句话理解

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

相关推荐
咸鱼求放生2 小时前
Java 8 Stream API
java·开发语言
moiumxf0278q2 小时前
C++中智能指针是如何工作的?
java·jvm·c++
尼古拉斯·纯情暖男·天真·阿玮3 小时前
泛型与数据结构
java·数据结构
半旧夜夏3 小时前
【Gateway】服务调用和网关配置攻略
java·spring boot·spring cloud·gateway
yue0083 小时前
C# 求取整数的阶乘
java·开发语言·c#
可观测性用观测云3 小时前
JAVA Heap Dump 采集最佳实践
java
一 乐3 小时前
个人博客|博客app|基于Springboot+微信小程序的个人博客app系统设计与实现(源码+数据库+文档)
java·前端·数据库·spring boot·后端·小程序·论文
曹绍华4 小时前
android 线程loop
android·java·开发语言