我有一个带有对象的 ArrayList。当我尝试获取 ArrayList 中对象的属性时,返回的变量不完全是我之前设置给变量的值。例如,当我尝试比较返回的变量时,变量类型“String”不起作用。但是当我打印返回变量的值时,似乎一切正常。//Class: public class obj{ public String name; public obj(String name){ this.name = name; }}//Add to List:ArrayList<obj> objs = new ArrayList<obj>(); objs.add(new obj("txt"));//Get Value:String name = objs.get(0).name;//Not working:if (name == "txt"){ println("...");}//But working:println(name); //sameif (name.charAt(0) == 116){ //"t" println("working");}我试过:getter/setter 方法产生相同的结果使用一个函数将返回的 var 转换为一个新的字符串,该函数获取返回的 var 的每个字符,因为 .length() 正在工作,包含返回变量的每个字符。创建一个返回对象名称的“toString()”方法。
1 回答
慕容708150
TA贡献1831条经验 获得超4个赞
在您的代码中,您检查对象是否相等:
//Not working:
if (name == "txt"){
println("...");
}
你应该使用:
if (name.equals("txt"))
添加回答
举报
0/150
提交
取消