[英]How to get ArrayList value from a Object ArrayList in java?
我有一個Object
的ArrayList
。 我添加了一些對象和ArrayList
的String
s到該ArrayList
。 我可以輕松地從中獲取對象值。 現在我的問題是如何從中獲取String
的整個ArrayList
?
代碼段:
Person.java
public class Person {
private String name;
private int number;
public Learn(String name, int number) {
this.name = name;
this.number= number;
}
public String getName() {
return name;
}
public int getNumber() {
return number;
}
}
現在我已經定義了對象列表
List<Object> itemsList = new ArrayList<>();
現在是時候在itemsList中添加一些Person了
public void addPerson(){
itemsList.add(new Person("Alex", 0000062846));
itemsList.add(new Person("Jack", 0000131332));
itemsList.add(new Person("Anjela", 0000053715));
itemsList.add(new Person("Brian", 0000085015));
}
現在,我將在索引2處添加一個字符串列表
public void addList(){
List<String> strList = new ArrayList<>();
strList.add("Hello");
strList.add("How");
strList.add("are");
strList.add("you?");
itemsList.add(2, strList);
}
好的,是時候從itemsList
獲取值了
Person person = (Person) itemsList.get(0);
System.out.println(person.getName); // Alex
現在的問題是:我怎樣才能strList
從itemsList
?
使用instanceof
,通過使用instanceof
在List<Object>
找到Object
類型
for(Object obj : itemsList) {
if(obj instanceof List) { //if it is List type then type cast it
List<String> str = (List<String>) obj;
for(String s : str) {
System.out.println(s);
}
}
}
但是根據注釋中的討論,假設您在List<Object> itemsList
有List<String>
和List<Integers>
,那么在類型轉換時將拋出異常,因為在運行時List<String>
和List<Integers>
都被視為`List
List<String> str = (List<String>) obj; //exception thrown at this line
看一下Type Erasure ,所以使用每種類型的通用列表而不是`List來添加不同的類型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.