我有这个课:
public class Registry {
private ArrayList<Communication> communicationList;
private ArrayList<Suspect> suspectList;
}
在主要班级,我增加了怀疑:
registry.addSuspect(s1);
registry.addSuspect(s2);
registry.addSuspect(s3);
我有一个窗口
FindSuspect
的类,该窗口具有一个文本字段和一个按钮。如何在registry.suspectList
中搜索嫌疑人的姓名?此类在FindSuspect类内:
class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
//There will be an if statement here, which will check if the textField.getText() is a suspect inside
//the registry.suspectList
JOptionPane.showMessageDialog(null,"Suspect " + textField.getText() + " not found!");
}
}
我很困惑,因为唯一的注册表项在我的主目录中,所以我无法从我的FindSuspect类(按钮侦听器所在的位置)访问可疑列表,这意味着我无法搜索可疑对象。
最佳答案
假设您的Registry
类实例可通过actionPerformed
方法访问,并且Suspect
类具有一个名为name
的字段
您可以添加此代码
boolean matchNotFound = registry.getSuspectList()
.stream()
.filter(s -> s.getName().equals(textField.getText()))
.noneMatch();
if (matchNotFound) {
JOptionPane.showMessageDialog(null,"Suspect " + textField.getText() + " not found!");
}
要访问
Registry
类中的FindSuspect
,有多种方法:在您的Main class中将其标记为静态,然后在此处访问
将其作为参数传递给“ FindSuspect”构造函数
将其移至可以从
FindSuspect
访问的另一个类