找不到符号 Java 错误?
Posted
技术标签:
【中文标题】找不到符号 Java 错误?【英文标题】:Cannot find symbol Java error? 【发布时间】:2013-05-20 11:39:45 【问题描述】:当我使用 java.util.Arrays.sort(numbers);
时,该代码有效
难道我做错了什么?这对我来说似乎很奇怪。
import java.util.Arrays.*;
class Test
public static void main(String[] args)
double[] numbers = 6.0, 4.4, 1.9, 2.9, 3.4, 3.5;
char[] chars = 'a', 'A', '4', 'F', 'D', 'P';
sort(numbers);
System.out.println(binarySearch(numbers, 3));
(终端显示错误)
Test.java:8: error: cannot find symbol
sort(numbers);
^
symbol: method sort(double[])
location: class Test
Test.java:10: error: cannot find symbol
System.out.println(binarySearch(numbers, 3));
^
symbol: method binarySearch(double[],int)
location: class Test
2 errors
【问题讨论】:
如果去掉类名,你认为Java如何找到方法? 去掉类名是什么意思?你是说Arrays.sort
?
您将“Arrays.sort”更改为“Arrays”。 “数组”是类名。
【参考方案1】:
它是 Arrays 类的静态方法。
你应该像这样调用它:
Arrays.sort(someArray);
请注意,您仍然必须像这样导入 Arrays 类:
import java.util.Arrays;
或者正如其他人所提到的,如果您进行静态导入,您可以省略类名。
我认为Arrays.sort()
的可读性更好。
【讨论】:
我尝试使用Arrays.sort(numbers)
运行,但没有成功。如果我只使用sort(numbers)
并且对import static
很重要,它就可以工作
要使用 Arrays.sort 你需要使用 import java.util.Arrays;【参考方案2】:
您需要进行静态导入。使用以下
import static java.util.Arrays.*;
原因
当你想导入一些静态成员(方法或变量)时,你需要静态导入成员。所以你必须使用import static
另一种解决方案
或者你可以导入
import java.util.Arrays;
并使用
Arrays.sort(b);
第二种解决方案的原因
这里您没有导入任何静态元素,因此需要正常导入到数组。然后就可以直接使用Arrays.sort
访问了
【讨论】:
【参考方案3】:您正在尝试进行静态导入,但您错过了static
。
// add v this
import static java.util.Arrays.*;
【讨论】:
谢谢!它有效,但是为什么有人说使用Arrays.sort(array)
,即使我使用静态导入,这也会给我一个错误
他们提供了另一种选择:进行正常导入:import java.util.Arrays;
并且你可以说Arrays.sort(someArray);
。以上是关于找不到符号 Java 错误?的主要内容,如果未能解决你的问题,请参考以下文章