2016-11-25 1 views
-7

각 Person 개체에 대해 person (유형 int)의 고유 ID를 가진 Person 클래스가 있습니다. 정적 메서드 isAlreadyStored (String name)도 있는데,이 이름을 가진 사람이 이미 만들어 졌는지 확인해야합니다. 나는 "정적 컨텍스트에서 비 정적 변수를 참조 할 수 없다"라는 오류가 발생하기 때문에 모든 생성 된 Person 객체에 대한 목록을 작성하여이 문제를 해결할 수는 없지만 모든 Person에 대해 반복하는 방법은 없습니다. 지정된 이름을 가진 개체를 찾으십시오. 어떻게 접근합니까?ID로 개체 찾기 (Java)

+3

그것은 다음과 같이 표현한 질문에 대답하는 것은 불가능하다. 일부 코드 공유 및 오류 발생 – Mureinik

+0

전체 클래스 코드를 게시하십시오. 어쩌면 main 메소드 (정적 메소드)에서 비 정적 메소드를 호출하려고 할 것인가? – Shem

+0

@Mureinik 답변 할 수없는 질문 (btw : 동의합니다)에 대해서는 놀라운 답변이 있습니다. – Seelenvirtuose

답변

1

분명히 문제를 해결하기 위해 Person 클래스에 대해 생성 된 모든 인스턴스의 목록이 필요합니다. 이를 정적 변수에 저장 한 다음 검색해야합니다. 이런 식으로 뭔가 :

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

이 그럼 당신은 이런 식으로 그 목록을 검색 할 수 있습니다 :

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

비 정적 변수가 정적 컨텍스트에서 참조 할 수없는 오류는 키워드 static으로 정의하는 방법에서 키워드 static없이 정의 된 변수에 액세스하려고하는 것을 의미한다. 예

public class Main { 
    private int x = 3; 

    public static void main(String[] args) { 
     // Not possible 
     System.out.println(x); 
    } 
} 

키워드 static없이 정의 된 변수

는 변수 인스턴스 방법 (키워드 static없이 정의하는 방법)로부터 만 액세스 할 수있는 인스턴스라는.