有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

通过ID查找对象(Java)

我有一个类Person,每个Person对象都有唯一的Person id(int类型)。我还有一个静态方法isAlreadyStored(String name),它应该检查是否已经创建了一个同名的人。我无法通过为所有创建的Person对象创建列表来解决这个问题,因为我得到了错误“非静态变量不能从静态上下文引用”,但我不知道如何迭代所有Person对象以找到一个具有给定名称的对象。我该怎么做


共 (2) 个答案

  1. # 1 楼答案

    错误非静态变量无法从静态上下文中引用表示您正试图从使用关键字static定义的方法访问未使用关键字static定义的变量

    比如

    public class Main {
        private int x = 3;
    
        public static void main(String[] args) {
            // Not possible
            System.out.println(x);
        }
    }
    

    未使用关键字static定义的变量被命名为实例变量只能通过实例方法(未使用关键字static定义的方法)访问

  2. # 2 楼答案

    显然,为了解决您的问题,您需要为Person类创建所有实例的列表。您应该将其存储在静态变量中,然后对其进行搜索。比如:

    final static allPeople List<Person> = new ArrayList<Person>();
    

    然后你可以在列表中搜索如下内容:

    ...
    if (allPeople.contains(aPerson)){
    ...