java只从列表中获取最后一个元素,而不考虑索引
我在显示使用Arrays实用程序类添加到列表中的元素时遇到问题。存储的值是如下所示的类中的对象
public class People {
private static Integer age;
private static String name;
public People(String name,Integer age){
this.age = age;
this.name = name;
}
public Integer getAge(){
return this.age;
}
public String getName(){
return this.name;
}
@Override
public String toString(){
return "name"+this.getName()+" Age"+ this.getAge();
}
}
通过以下代码将值添加到列表中:
List<People> myPeople = Arrays.asList(
new People("Samuel Owino", 18),
new People("Swale Mdohe", 12),
new People("Joseph Wambwile", 48),
new People("Samuel Werre", 18),
new People("Swale Mdohe", 12),
new People("Joseph Wambwile", 48)
);
显示代码如下所示:
myPeople.forEach(System.out::println);
意识到问题在于对bean类、age和name中的实例变量使用static access修饰符,当static被删除时,该方法可以完美地工作。谢谢你的推荐
# 1 楼答案
要获得列表的最后一项,可以执行以下操作:
# 2 楼答案
您将成员变量设置为静态变量,它们应为实例级别:
否则,对列表的每次添加都会覆盖
People
对象的共享状态我怀疑当变量被传递到构造函数中时,您的意思是使用
final
而不是static