java编译器警告:In中的readStrings()(不建议使用)

时间:2014-02-17 18:46:12

标签: java compiler-warnings deprecated

我在带有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()中进行比较。我认为可以比较字符串。

我的问题是,如何摆脱错误?顺便说一下,警告是否与错误有关?

1 个答案:

答案 0 :(得分:2)

要删除已弃用的警告,不要使用已弃用的功能。 Deprecated功能可能不符合当前标准。它们的存在只是为了在世界其他地方赶上时提供向后兼容性。在您的情况下,请改用另一个Stream阅读器。我更喜欢Scanner,但还有更多。

Scanner in = new Scanner(System.In);
String[] strings = in.readLine().split(" ");

不要重新发明轮子。使用预先构建的Arrays.Sort()方法。除非你有充分的理由这样做,否则不要实现自己的排序功能。

Arrays.sort(strings);