gpt4 book ai didi

java - 在运行时获取列表对象的类型

转载 作者:太空宇宙 更新时间:2023-11-04 07:36:08 24 4
gpt4 key购买 nike

目前我有两个列表

private List<Department> subdepts = new LinkedList<Department>();
private List<Employee> employees = new LinkedList<Employee>();

在运行时我将它们作为对象获取,但我需要知道何时看到 List<Department>

我使用了以下代码。

// o is an Object
if(o instanceof List){
List l = (List)o;
if(l.size() > 0){
if(l.get(0) instanceof Department){

但是如果列表为空怎么办?我怎么知道它是否是 List<Department>

最佳答案

泛型参数类型会在运行时被删除,这意味着您无法确定列表声明的泛型类型。这称为 generic type erasure .

如果您知道列表仅包含一种类型的对象,您可以简单地检查列表中的任何对象是否是特定类的实例,但这是一个不清楚的解决方法。

关于java - 在运行时获取列表对象的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16850989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com