【发布时间】:2015-11-20 19:04:30
【问题描述】:
我熟悉Java,但刚开始学习JavaFX,特别是学习JavaFX属性。我了解 Oracle 的以下示例所示的基本设计模式:
package propertydemo;
import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;
class Bill {
// Define a variable to store the property
private DoubleProperty amountDue = new SimpleDoubleProperty();
// Define a getter for the property's value
public final double getAmountDue(){return amountDue.get();}
// Define a setter for the property's value
public final void setAmountDue(double value){amountDue.set(value);}
// Define a getter for the property itself
public DoubleProperty amountDueProperty() {return amountDue;}
}
我不明白什么时候/为什么要使用 getter 和 setter 方法,而不是直接使用 Property?
我的想法是,您可能希望在 getter 和/或 setter 中使用一些自定义代码,这些代码可能会对数据进行一些前后操作/验证,但如果您创建自定义 getter 和/或 setter,您会然后得到不同的结果,具体取决于您是直接使用 getter/setter 还是属性,这对我来说似乎很危险。
如果 getter/setter 只是调用 Property 的 get 和 set 方法,那为什么还要有它们呢?
对此的任何见解将不胜感激。
【问题讨论】:
-
来自learn javafx ebook 。
Additional getters and setters, using JavaBeans naming convention, are added to make the class interoperable with the older tools and frameworks that use the old JavaBeans naming conventions to identify the properties of a class. -
在我看来,不需要额外的 getter 和 setter。
-
@Kachna 这当然取决于您的用例。例如,如果您想在 JPA 实体中使用 JavaFX 属性,则需要 get 和 set 方法。同样,如果您使用 JSON 或 XML 编组等。
标签: java javafx properties setter getter