【发布时间】:2016-11-06 21:00:17
【问题描述】:
我试图通过在Util.java 中定义一个静态方法来缩短System.out.println()。我想使用 Util.print() 进一步缩短为print()。所以我做了一个静态导入。
Util.java 与 ListOfNumbers.java 位于同一目录下。当我尝试从测试器类访问 writeList() 时,出现以下错误:
import java.io.*;
import java.util.List;
import java.util.ArrayList;
import static Util;
public class ListOfNumbers {
...
...
public void writeList() {
// The FileWriter constructor throws IOException, which must be caught.
PrintWriter out = null;
try {
print("Entered try statement...");
...
} catch (IOException | IndexOutOfBoundsException e){
print("Exception thrown: \n" + e.getMessage());
...
}
}
}
错误:
>> javac Tester.java && java Tester
.\ListOfNumbers.java:4: error: '.' expected
import static Util;
^
.\ListOfNumbers.java:4: error: ';' expected
import static Util;
^
.\ListOfNumbers.java:4: error: cannot find symbol
import static Util;
^
symbol: class Util
.\ListOfNumbers.java:4: error: static import only from classes and interfaces
import static Util;
^
.\ListOfNumbers.java:24: error: cannot find symbol
print("Entered try statement...");
^
symbol: method print(String)
location: class ListOfNumbers
.\ListOfNumbers.java:34: error: cannot find symbol
print("Exception thrown: \n" + e.getMessage());
^
symbol: method print(String)
location: class ListOfNumbers
6 errors
【问题讨论】:
-
看起来不像回答我的问题。您能否仔细查看当前上下文以及您“可能”标记为重复的问题?
-
好吧,如果您阅读了答案以及答案中标记的后续问题,应该可以消除您的疑问。
-
并且只是为了记录:使用默认包是不好的做法,真的不是你应该做的事情。类的名称应该说明它们“是什么”;从这个意义上说,“Util”也不是一个很好命名的例子。
-
@Jägermeister:有效积分并同意!我正在尝试实施和学习一些基础知识和实践。但是,在使用默认包名称时,我会牢记这一点。干杯!