我在带有OSX 10.9.1的Mac上的Dr. Java工作室中运行javac v1.6.0-65
我收到以下警告:
Quick.java:53: warning: [deprecation] readStrings() in In has been deprecated
这不是那么糟糕,我想,除了我也得到以下错误:
Quick.java:54: sort(java.lang.Comparable[],int,int) in Quick cannot be applied to (java.lang.String[])
代码行是:
public static void main(String[] args)
{ // Read strings from standard input, sort them, and print.
String[] a = In.readStrings();
sort(a);
和
private static void sort(Comparable[] a, int lo, int hi)
{
在定义输入数组a,String [] a时似乎存在一些不匹配,因为可以在私有sort()中进行比较。我认为可以比较字符串。
我的问题是,如何摆脱错误?顺便说一下,警告是否与错误有关?
答案 0 :(得分:2)
要删除已弃用的警告,不要使用已弃用的功能。 Deprecated功能可能不符合当前标准。它们的存在只是为了在世界其他地方赶上时提供向后兼容性。在您的情况下,请改用另一个Stream阅读器。我更喜欢Scanner,但还有更多。
Scanner in = new Scanner(System.In);
String[] strings = in.readLine().split(" ");
不要重新发明轮子。使用预先构建的Arrays.Sort()方法。除非你有充分的理由这样做,否则不要实现自己的排序功能。
Arrays.sort(strings);