2016-05-18 29 views
0

私はJavaの初心者です。座っているプラ​​ンをコーディングしている間、カウンターはエラーを返してくれました。 助けてください>。 <オブジェクトは解決できないか、フィールドではありません

これはSittingPlan

public SittingPlan() 
{ 
    String[] name = {"charles" }; 
    String[] sex = {" Girl", "Boy"}; 
    Students[] names = new Students[NUMBER_OF_STUDENTS]; 
    currentStudents = 0; 
    for (int count = 0; count < names.length; count++) 
     names [ count ] = new Students (name [count % 22 ], sex [ count/22 ]); 
} 
public void shuffle() 
{ 
    currentStudents = 0; 
    SittingPlan.shuffle.setName(); 
    for (int first = 0; first < names.length; first++) 
    { 
     int second = randomNumbers.nextInt (NUMBER_OF_STUDENTS); 
     Students temp = names[ first ]; 
     names[ first ] = names[ second ]; 
     names[ second ] = (Students) temp; 
    } 

} 
public Students dealStudents() 
{ 
    if (currentStudents < names.length) 
     return (Students) names[ currentStudents++ ]; 
    else 
     return null; 
} 

ためのクラスであり、これはこの行が間違っているスタックトレース

Exception in thread "main" java.lang.Error: Unresolved compilation problem: shuffle cannot be resolved or is not a field

at SittingPlan.shuffle(SittingPlan.java:22) 
at mainlaunch.main(mainlaunch.java:6) 
+2

私はvoidを返すシャッフル(という名前のメソッド)を参照してください。シャッフルという名前の変数はありません。 voidのsetName()を呼び出すことはできません。悪いコード。コンパイラを信じてください。 – duffymo

+0

さて、shuffle()メソッド自体(無限再帰)でshuffle()を実際に呼び出すはずです。チャールズが私たちに言うまで、この行が何をすべきか知りません。 –

+0

@ 911DidBush私はshuffle()メソッドを呼び出して、変数firstとsecond thoのような変数の先頭をシャッフルします。シャッフルを効かせるためのヒント遅く返信して申し訳ありません。 –

答えて

0

です:

SittingPlan.shuffle.setName(); 

shuffle()がmでありますそれはstaticではありません。 voidを返すので、戻り値としてsetName()を呼び出すことはできません。

私はあなたが望むものを推測することはできません。このコードは混乱します。

私はこのように、良いアイデアは、Javaコレクションを使用していると思う:

List<Student> classList = new ArrayList<Student>(); 
// populate with Student instances 
Random random = new Random(seed); 
Collections.shuffle(classList, random); 
+0

ありがとうございました –

関連する問題