如何满足Java编译器&x27;s针对设置SimpleObject属性的未选中警告

如何满足Java编译器&x27;s针对设置SimpleObject属性的未选中警告,java,object-property,Java,Object Property,我有这门课: 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) { t

我有这门课:

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); }
}
我想知道是否有一种方法可以满足编译器关于设置日期的要求。我可以抑制未检查的警告,但我想知道在使用ObjectProperty和SimpleObjectProperty来避免未检查的警告时是否有合理的方法。我尝试了一些方法,谷歌搜索很接近,但还不足以让我明白这一点。

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

public ObjectProperty theDateProperty()


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

谢谢你,ctomek。我希望我今天有足够的声望来计算你的答案。@msbarnes先生你能做的就是点击选票计数下的标记来接受这个答案。。)
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());
    }
}