如何满足 Java 编译器在设置 SimpleObjectProperty 时未选中的警告



我有这个类:

package mydate;
import java.util.Date;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
public class MyDate {
    private final ObjectProperty<Date> theDate;
    public MyDate(Date d) { theDate = new SimpleObjectProperty<>(d); }
    public ObjectProperty theDateProperty() { return theDate; }
    public Date getTheDate() { return (Date)theDateProperty().get(); }
    //@SuppressWarnings("unchecked")
    public void setTheDate(Date value) { theDateProperty().set(value); }
}

这是一个使用它的简单应用程序:

package unchecked;
import java.util.Date;
import mydate.*;
public class Unchecked {
    public static void main(String[] args) {
        MyDate myDate = new MyDate(new Date(0));
        System.out.println(myDate.getTheDate().toString());
    }
}

我想知道是否有办法满足编译器关于 setTheDate 的要求。 我可以禁止未选中的警告,但我想知道在使用 ObjectProperty 和 SimpleObjectProperty 来避免未选中的警告时是否可以采取合理的措施。 我已经尝试了一些事情,谷歌搜索很接近,但还不够接近,让我弄清楚这一点。

ObjectProperty<Date>是一个参数化类型。您正确声明了实例变量类型 ( ObjectProperty<Date> ),但您没有在方法 theDateProperty() 返回的参数化类型中声明类型参数。此方法应按以下方式声明:

public ObjectProperty<Date> theDateProperty()

之后,所有警告都消失了。

相关内容

  • 没有找到相关文章

最新更新