gpt4 book ai didi

java - 使用字符串引用数组列表的自定义类成员

转载 作者:搜寻专家 更新时间:2023-11-01 08:13:46 24 4
gpt4 key购买 nike

所以我有一个“屏幕”列表,其中包含“屏幕”类型的自定义类对象,这些对象是在运行时从 XML 文件中读取的。在 XML 中还有一个名为“路径”的部分,其中包含字符串,这些字符串存储为“屏幕”对象的其他成员。我想做的是读取当前屏幕上 path.left 的字符串值并用于设置 currentScreen 的新值。IE。我知道.. currentScreen.path.left = "park"所以我想要.. currentScreen = currentChapter.Screens.park;

但它不喜欢它.. 我尝试了以下但它不会在列表中找到它,因为该列表是“屏幕”而不是字符串。谢谢。

String tmppath = currentScreen.path.left;
int index = currentChapter.Screens.indexOf(tmppath);
currentScreen = currentChapter.Screens.get(index);

屏幕和路径对象如下所示:

public class Screen {
public String id;
public Integer backdrop;
public Paths path;
public List<Integer> areaMode = new ArrayList<Integer>();
public List<String> areaName = new ArrayList<String>();
public List<Region> areaArray = new ArrayList<Region>();

public Screen(String mid, Integer backDrop, Paths mpath, List<Integer> mareaMode ,List<String> mareaName, List<Region> mareaArray) {
id = mid;
backdrop = backDrop;
path = mpath;
areaMode = mareaMode;
areaName = mareaName;
areaArray = mareaArray;
}
}

public class Paths {
public String left;
public String right;
public String top;
public String bottom;

public Paths(String mleft, String mright, String mtop, String mbottom) {
left = mleft;
right = mright;
top = mtop;
bottom = mbottom;
}
}

我认为我遇到的另一个问题是我试图使用我在其中创建的“id”字符串来查找“Screen”实例。

最佳答案

indexOf() 在您的对象上使用 equals() 操作来确定您的对象在列表中的位置。

因此,在您的 Screen 对象中,equals() 方法应该使用路径变量或它的某些部分来使其工作。如果不看那个物体,就很难分辨。

@Be77amy——我将在这里做一个大胆的假设,即路径变量等于 Screen 对象的 ID。如果这是真的,那么你的问题就大大简化了。您应该像这样实现 hashCode() 和 equals() 方法 --

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Screen other = (Screen) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}

这也将使您能够按 ID 进行查找。

关于java - 使用字符串引用数组列表的自定义类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6921215/

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