Java中如何判断ArrayList存储的元素所属的具体类
解决方案
直接调用目标下标元素的getClass()方法即可,该方法是JavaObject类的原生内置方法,会返回对象的运行时类,直接打印就会输出你需要的class 包名.类名格式结果。
完整示例代码
import java.util.ArrayList; // 替换为你实际的包路径 package com.yourpackage; // 你的自定义类 class CPU {} class GPU {} class RAM {} public class Main { public static void main(String[] args) { ArrayList<Object> stock = new ArrayList<>(); stock.add(new CPU()); stock.add(new GPU()); stock.add(new RAM()); // 取下标0的对象所属类 Class<?> targetClass = stock.get(0).getClass(); System.out.println(targetClass); // 输出:class com.yourpackage.CPU } }
拓展用法
如果你需要不同格式的类名信息,可以用以下方法:
- 拿到带包名的全类名字符串:
targetClass.getName(),输出com.yourpackage.CPU - 只拿到类名字符串不带包名:
targetClass.getSimpleName(),输出CPU
注意事项
- 取元素前建议先判断下标是否在集合的合法范围内,避免抛出
IndexOutOfBoundsException - 如果集合允许存入
null,调用getClass()前要先判空,避免触发空指针异常,安全写法如下:
Object element = stock.get(0); if (element != null) { System.out.println(element.getClass()); } else { System.out.println("指定下标无有效对象,值为null"); }
内容的提问来源于stack exchange,提问作者user13820664
相关产品推荐
相关产品推荐

