2016-06-21 9 views
-1

に私はとしてのLinkedListクラスの非常に単純なコードを書いていますUbuntuの14は、そのメソッドをrecogizeません* LinkedListのためのUbuntu

$ 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) 

上でJava 7を使用しています:。

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で働いています。窓でも働いています。

私はUbuntuの中で明示的にLinkedListのクラスをインポートする場合、コードはまた、Ubuntuの中で作業を開始します: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] 
$ 

をのみ、それが明示的に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

オンデマンドインポートステートメントを使用しないでください。 –

+2

クラス 'First'と同じディレクトリに' LinkedList'というクラスがありますか? –

+0

@ErwinBolwidtはい、あなたは正しいです。私はそれを得た..これは愚かな間違いだった.. –

答えて

2

First.javaが保存されている現在のディレクトリにクラス名LinkedListが存在すると思います。

私はコンソールのエラーとして何を参照してくださいので

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という名前のクラスに存在する必要があります。そのため、コンパイラはそのクラスをこの行の参照として取り出します。

LinkedList ll = new LinkedList(); 

しかし、add()の定義は見当たりません。

ありがとうございました

+0

はい、あなたは正しいです.. –

関連する問題