小编m-s*_*lik的帖子

Java:泛型和未经检查 - 为什么?

我使用的是JDK8,javac 1.8.0_05 我有这样的界面:

public interface NumberHolder<N extends Number> {        
    Optional<String> getNumberName();
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,NumericHolder方法getNumberName()返回的所有子类型Optional<String>.
但是......当我尝试访问它时:

NumberHolder numberHolder = null;
Optional<String> optional = numberHolder.getNumberName(); // warning is here
Run Code Online (Sandbox Code Playgroud)

编译器说:

warning: [unchecked] unchecked conversion 
        Optional<String> optional = numberHolder.getNumberName();
Run Code Online (Sandbox Code Playgroud)

getNumberName()总是Optional<String>这样,为什么提出这个警告呢?
有人可以解释一下吗?

java generics syntax-error java-8

1
推荐指数
1
解决办法
137
查看次数

标签 统计

generics ×1

java ×1

java-8 ×1

syntax-error ×1