java:如何整体检查ArrayList的类型
我知道如何硬编码一个算法来检查arraylist中每个对象的类型,但是在检查arraylist的类型时还有其他方法吗<&燃气轮机;我的意思是,我的应用程序只有三种类型的arraylist。假设我有一个返回ArrayList的函数,它的定义是在变量o(当然是object的ArrayList)中添加一个person对象
o.add(person);
在对象的arraylist上添加了所有的person数据,当调用此函数时,表示我的函数名为getData()
ArrayList <Object> obj = getData();
所以我知道在调用getData()返回的ArrayList中,它是all person对象,我如何知道该ArrayList的类型
只是想让这个函数在某种意义上更通用,但这是为我的应用程序设计的,generic troughout是为我的应用程序设计的
有没有其他方法可以做到这一点,我可以想出一个算法,但有没有捷径或简单的方法可以做到这一点
# 1 楼答案
实际上,有一种方法不需要手动铸造每一件物品(尽管它仍然很难看)
这不应该给出任何未经检查的警告
你可以这样使用它:
不起作用的是:
# 2 楼答案
不存在
ArrayList
的“类型”这样的东西类
ArrayList
存储Object
引用的列表。它不知道也不在乎它们是否都属于某种类型Java泛型系统添加了编译时检查,以帮助您跟踪类型。因此,如果您声明
ArrayList<Person>
,那么如果您编写的代码可能会在列表中插入非Person
,则会出现编译错误在运行时,判断
ArrayList
中的内容的唯一方法是迭代所有包含的项,并用instanceof
检查它们# 3 楼答案
如果列表不是空的,则获取第一个元素: