2016-06-21 2 views
-1

내가 자바 7을 사용하고 내가 같이 LinkedList의 클래스에 매우 간단한 코드를 작성하고는 방법을 recogize하지 않습니다 * LinkedList의 경우 우분투

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

우분투 14 일 :.

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 

그러나 동일한 코드를 완벽하게 같은 우분투에 설치 이클립스에서 일하고있다. 또한 창문에서도 작업합니다. 나는 우분투에서 명시 적으로 LinkedList의 클래스를 가져 오는 경우

는 코드는 우분투에서 작동하기 시작합니다 : 우분투에서

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 정의가 add() 같은 그런 방법이없는 컴파일러에 의해 그 LinkedList 클래스에서 발견 된 콘솔 오류로 무엇을보고 있기 때문이다.

그래서 현재 디렉토리에있는 LinkedList 클래스에 클래스 이름이 있어야합니다. 그래서 컴파일러는이 클래스를이 라인의 참조로 선택합니다.

LinkedList ll = new LinkedList(); 

그러나, add() 방법의 정의는 발견되지 않는다.

감사합니다.

+0

예, 맞습니다. –