如何满足 Java 编译器设置 SimpleObjectProperty 的未经检查的警告

Posted

技术标签:

【中文标题】如何满足 Java 编译器设置 SimpleObjectProperty 的未经检查的警告【英文标题】:How to satisfy Java compiler's unchecked warning for setting a SimpleObjectProperty 【发布时间】:2016-09-27 12:55:53 【问题描述】:

我有这门课:

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 时是否可以做一些合理的事情来避免未经检查的警告。我已经尝试了一些事情,谷歌搜索结果很接近,但还不够接近,我无法弄清楚。

【问题讨论】:

【参考方案1】:

ObjectProperty&lt;Date&gt; 是一个参数化类型。您正确声明了您的实例变量类型 (ObjectProperty&lt;Date&gt;),但您没有在从方法 theDateProperty() 返回的参数化类型中声明类型参数。这个方法应该这样声明:

public ObjectProperty&lt;Date&gt; theDateProperty()

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

【讨论】:

谢谢你,ctomek。我希望我今天有足够的声誉来计算你的回答。 @mrmsbarnes 你可以做的是通过点击投票计数下的标记来接受这个答案。 ; )

以上是关于如何满足 Java 编译器设置 SimpleObjectProperty 的未经检查的警告的主要内容,如果未能解决你的问题,请参考以下文章

Java-Runoob-高级教程-实例-环境设置实例:2.Java 实例 – Java 如何运行一个编译过的类文件?

Inno Setup 编译器”如何打包 javaWeb 应用程序,自动设置环境变量

如何将Java项目构面设置为12?

如何设置一个好的java构建环境?

npm 错误!如何使用 vue@2.6.14 安装满足对等依赖的编译器-sfc?

研究明白这些JVM知识点,就可以通过大部分面试和满足平时的使用了