2016-11-25 6 views
-7

私はクラスPersonを持っていますが、各Personオブジェクトのperson(type int)の一意のIDを持っています。私はまた、静的メソッドisAlreadyStored(String name)を持っています。これは、この名前を持つ人物がすでに作成されているかどうかを確認する必要があります。静的コンテキストからは非静的変数を参照できないというエラーが発生するため、作成したすべてのPersonオブジェクトのリストを作成してこの問題を解決することはできませんが、すべてのPersonに対してどのように反復処理を行うかは他にありません指定された名前のものを見つけるためのオブジェクト。私はこれにどのようにアプローチするのですか?IDでオブジェクトを検索する(Java)

+3

は、それはこのように言葉で表現質問に答えることは不可能です。いくつかのコードとあなたが得ているエラーを共有してください – Mureinik

+0

フルクラスコードを投稿してください。メインメソッド(静的メソッド)から非静的メソッドを呼び出す場合がありますか? – 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なしで定義されたメソッド)からのみアクセス可能と命名されています。

関連する問題