0

有人可以帮我理解Java在做什么吗?我制作了一个名为 data 的 ObservableList。我将元素添加到列表中,如下所示:

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

所以我制作了一个表格,用于将人员添加到此列表中,该列表保存在 Java 的内存中,以便稍后我可以单击一个按钮来添加,比如说 5 个人到我的数据库中。我的第一个问题是,我是否正确地将其描述为 5 个对象的列表,每个对象包含 8 个值?如果不是,那么使用 Java 术语来描述这里所做的事情的正确方法是什么?

现在,假设我在 ObservableList 上面有这个称为数据,如果我输入命令

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 [object]),而是 o.[variable].get()。通过这种方式,迭代器已经让我成为众多对象之一,每个对象都包含许多变量。但是数据模型为每个变量定义了 getter,因此调用 [object].[variable].get() 运行 getter,从而返回该对象中变量的正确值和类型。

所以...我的迭代器的正确代码是:

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();
}

因此,在数据模型中定义了一个 getter:

public SimpleStringProperty lastNameProperty() {
    return lastName;
}

(除此之外:使用 SimpleStringProperty 并将“Property”附加到变量“lastName”以使 getter 的名称更容易为 TableView 的列创建 CellValueFactory)

于 2013-07-26T01:13:55.100 回答