gpt4 book ai didi

OS X 10.9.1 上的 java "import java.util.*"编译失败

转载 作者:行者123 更新时间:2023-12-02 06:19:36 24 4
gpt4 key购买 nike

我写了一个非常简单的java堆栈操作程序。我正在 OS X 10.9.1 上使用 Java(TM) SE 运行时环境。我尝试过 JDK build 1.7.0_13-b20 和 build 1.7.0_51-b13,两者都不适合我。我只是想测试 java Stack 类。我没有私有(private)堆栈实现。并且 $CLASSPATH 环境变量设置为空。

我在 Windows (Win 8.1) 上使用 JDK 1.7.0_25 测试了相同的程序。效果很好。

import java.util.*;
public class MyStackTest
{
public static void main(String[] args){
Stack<Integer> mys = new Stack<Integer>();
mys.push(5);

while ( ! mys.empty() ) {
System.out.println(mys.peek());
mys.pop();
}
}
}

但是,在使用 javac 1.7.0_13 编译时,出现“找不到符号”错误:

$ javac MyStackTest.java  -Xlint
MyStackTest.java:9: error: cannot find symbol
while ( ! mys.empty() ) {
^
symbol: method empty()
location: variable mys of type Stack<Integer>
1 error

我发现如果我将导入语句更改为

import java.util.Stack

程序编译良好。为什么“import java.util.”会导致问题?如何判断 java.util. 中的哪个类导致了问题?

谢谢!

最佳答案

您可能在与 MyStackTest 类相同的包中拥有 Stack 实现(在本例中为默认包名称)。注释掉 new Stack 之后的所有内容并打印出类类型。如果它不是 java.util.Stack 那么您就找到了答案。

import java.util.*;
public class MyStackTest
{
public static void main(String[] args){
Stack<Integer> mys = new Stack<Integer>();

System.out.println(mys.getClass());
}
}

另一种可能性是 mys.empty() 中包含非 UTF8 字符。尝试删除该行并再次手动输入。

关于OS X 10.9.1 上的 java "import java.util.*"编译失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21127253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com