0

誰かがJavaが何をしているかを理解するのを手伝ってくれますか? データという名前の ObservableList を作成しました。次のように、リストに要素を追加します。

data.add(new ClientList(LastName, FirstName, Street, City, State, Zip, Telephone, DateOfBirth);

そこで、このリストに人を追加するためのフォームを作成します。このリストは Java のメモリに保持されるため、後でボタンをクリックして追加できます。たとえば、データベースに 5 人を追加します。私の最初の質問は、これを 5 つのオブジェクトのリストとして正しく記述し、各オブジェクトに 8 つの値が含まれているかどうかです。そうでない場合、Java 用語を使用して、ここで行われたことを説明する適切な方法は何でしょうか?

ここで、ObservableList の上に data という名前があるとすれば、コマンドを入力すると、

System.out.println(data.toString())

(そして、リストに 5 つのクライアントがあると仮定すると) 画面上で参照されている 5 つのオブジェクトのリストが表示されます (メモリ内の「スロット」へのポインターのみですが)、正しいですか? ここまでは、人々が私が正しいと言うか、私の用語はすべて間違っているので [ここに正しい用語を挿入] する必要があると言ってくれることを本当に望んでいます。または、私がベースから外れている場合は、それも修正してください.

今、私が理解していないのは、次のコードを書いた場合です:

for (Object o : data) {
    [variable] = data.get(0);
}

整数 (0) は、0 でインデックス付けされたリスト内のオブジェクトを参照しているようです (これは、リスト内の最初の人物のすべての値になりますよね?)。NetBeans は、このために変数を「オブジェクト」型にすることを望んでおり、そこに何かを入れると、ステートメントの書き方に応じて、コンパイル エラーまたは実行時エラーが発生します。

しかし、私はリストを繰り返し処理しているので、この整数は現在 for ループによって処理されているオブジェクトの最初の値 (私の場合は LastName) を指すはずだと思いました。私のコードの実行方法から推測できることからすると、私は間違っています。前の段落は何が起こっているのかです。では、リスト内の各オブジェクトの値を読み取るにはどうすればよいでしょうか?

4

1 に答える 1

0

わかりました、私それを理解したので、これに答えましょう。私は間違っているかもしれませんが、私はまだこれをここに置いておきたいので、後で学習を続けて情報を得たいと思っています。

まず、「data.get(0)」がリストの最初のオブジェクトであり、このオブジェクトは LastName、FirstName などの配列であるという点で正しいようです。 data.get(int を使用するべきではありませんでした。 [オブジェクト])、むしろ o.[変数].get()。このようにして、イテレータは、それぞれが多くの変数を含む多くのオブジェクトの 1 つを既に取得しています。ただし、データ モデルは変数ごとにゲッターを定義するため、[object].[variable].get() を呼び出すとゲッターが実行され、そのオブジェクト内の変数の正しい値と型が返されます。

SO ...私のイテレータの正しいコードは次のようになります:

for (Object o : data) { //"For each object we'll call 'o' in the already defined list named 'data' ..."
    String lastName = o.lastName.get();
        // repeat this pattern for each variable in the object
        // [Type] [variable] = [object].[variable].get();
}

したがって、データモデルで定義されたゲッターを使用して:

public SimpleStringProperty lastNameProperty() {
    return lastName;
}

(余談: SimpleStringProperty を使用し、"Property" を変数 "lastName" に追加してゲッターの名前を作成すると、TableView の列の CellValueFactory を簡単に作成できます)

于 2013-07-26T01:13:55.100 に答える