java - BlueJ 中的数组列表搜索

标签 java class arraylist bluej

既然学校已经重新开学,我正试图重新开始使用 Java,但我在找到一个在两个类(class)之间正常工作的方法时遇到了很多麻烦。

我有一个“家庭”类和一个“成员”类,我需要确保每个成员在添加到家庭时都有不同的唯一 ID。到目前为止我已经:

public class Family
{
private ArrayList <Member> FamilyMembers;

...

public Family()
{
    FamilyMembers = new ArrayList<Member>();
}

....

public ArrayList getMembers()
{
    return FamilyMembers;    
}

}

public class Member
{
private int ID;

...

public Member(int newID, String newMemberName, String newSex)
{
    this.ID = newID;

...

}

 public void setID(int newID)
{  

    boolean unique = true;
    for(Member m: Family.getMembers())
      {
       if(m.getID()==newID)
        {
          unique=false;
        }
       }
    if(true)
     {
        this.ID = newID;
     }
}

编译时出现错误,无法从静态上下文引用非静态方法 getMembers?我不明白为什么在设置 ID 之前不能使用 Family 类中的 get 方法执行搜索?非常感谢任何帮助或建议!

最佳答案

事实上该方法:

public ArrayList getMembers()
{
    return FamilyMembers;    
}

不是静态的,意味着您需要创建 Family 类的对象来调用上述方法。您可以执行以下两件事之一。

  1. 添加单词 static,如下所示:

    公共(public)静态ArrayList getMembers()。

  2. 或者您可以按如下方式创建该类的对象。 插入此代码。

    家庭ob = new Family();

ob 是对象。现在您可以使用它来调用该方法,如下所示:

ob.getMembers();

在您的代码中,它将如下所示:

for(Member m: ob.getMembers())

关于java - BlueJ 中的数组列表搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25746905/

相关文章:

java - 尝试并行化快速排序以在Java中的多个线程上运行

objective-c - Objective-C 中的模板?

VB.NET 命名空间和类语法

java - 如何将Excel单元格值插入到列表中?

java - Arraylist 按指定顺序搜索 2 个元素

java - 如何在 Hibernate 实体注释上使用两个外键作为主键

java - 如何从 MyBatis 传递 CURSOR 作为 Oracle 函数参数

java - 尝试有主菜单和子菜单类

java - 无法编译个人客户类,构造函数有问题吗?

java - 使用用户输入值显示数组列表中的特定对象