我在Ubuntu 14上使用java 7.
$ java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.14.04.1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
我在LinkedList类上编写了一个非常简单的代码:
import java.util.*;
public class First
{
//@SuppressWarnings({ "rawtypes", "unchecked" })
public static void main(String[] args)
{
LinkedList ll = new LinkedList();
ll.add(5);
System.out.println(ll);
}
}
我的编译器产生错误:
$ javac First.java
First.java:8: error: cannot find symbol
ll.add(5);
^
symbol: method add(int)
location: variable ll of type LinkedList
1 error
但是同样的代码完全适用于安装在同一个Ubuntu中的Eclipse。而且还在Windows中工作。
如果我在Ubuntu中显式导入LinkedList类,代码也开始在ubuntu中工作:
import java.util.LinkedList;
public class First
{
//@SuppressWarnings({ "rawtypes", "unchecked" })
public static void main(String[] args)
{
LinkedList ll = new LinkedList();
ll.add(5);
System.out.println(ll);
}
}
$ javac First.java
Note: First.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
$ java First
[5]
$
在Ubuntu中只使用ArrayList类,它不需要显式实现ArrayList。
import java.util.*;
public class First
{
//@SuppressWarnings({ "rawtypes", "unchecked" })
public static void main(String[] args)
{
ArrayList ll = new ArrayList();
ll.add(5);
System.out.println(ll);
}
}
$ javac First.java
Note: First.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
$ java First
[5]
$
我无法理解这是什么问题。
答案 0 :(得分:3)
我认为您的当前目录中存在一个班级名称LinkedList
,其中First.java
已保存。
因为我看到的是控制台错误
First.java:8: error: cannot find symbol //method definition not found
ll.add(5);
^
symbol: method add(int)
location: variable ll of type LinkedList
1 error
此处未找到方法定义,但编译器找到了Class LinkedList
定义,而LinkedList
类中没有add()
这样的方法。
所以,我猜你的当前目录中名为LinkedList
的类必须存在。因此,Compiler选择该类作为此行的参考。
LinkedList ll = new LinkedList();
但未找到add()
方法的定义。
由于