一、引言
最近在学习 《Head First Java》的第 13 章的时候,遇到了教材上的这段代码,硬是编译不过去:
String[] listEntries = {"alpha", "beta", "gamma", "delta",
"epsilon", "zeta", "eta", "theta"};
list = new JList(listEntries);
提示信息是:
注: TestList.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
我仔细比对了自己敲的,和教材上写的,确认没有敲错,那么这里是哪里出了问题了呢?
此时我回忆起来了一个关键点:
Head First Java 此书的代码,都是基于 Java5.0 的
而我的电脑上装的 Java 版本是最新的 1.8,难道是版本的问题?
二、翻查 API 文档
此时,我查询了 Java5.0 和 Java7 的参考文档:
这是 Java5.0 的官方示例,地址:
String[] data = {"one", "two", "three", "four"};
JList dataList = new JList(data);
可见,这就是 Head First Java 上面的代码样式。
而这是 Java7 的官方示例,地址:
String[] data = {"one", "two", "three", "four"};
JList<String> myList = new JList<String>(data);
通过官方文档我们可以看出,原来是在 Java5.0 之后的版本加上了泛型的考虑,导致我们 Java5.0 的代码编译不过去了,此时需要将代码改成官方示例的样子才能够编译过去。
至此,问题解决:)
三、总结
可见,Java 不同版本之间的区别还是存在的,遇到问题要习惯于去查看 API 官方文档,游刃于多种版本之间,更加能够领悟版本之间的变化。
作为一个初学 java 的新人,能够独立解决这样的问题,还真是很开心呢 ^_^