2014-10-11 2 views
-1

연결된 목록이있는 프로그램을 만들려고했습니다.Java 목록 - 식별자가 필요합니다.

패키지 com.delta.memory;

import java.util.ArrayList; 

/** 
* Lists 
*/ 
public class Lists { 

    ArrayList<String> DaysOfTheWeek = new ArrayList<String>(); 

    DaysOfTheWeek.add("Sunday"); 
    DaysOfTheWeek.add("Tuesday"); 
    DaysOfTheWeek.add("Wednesday"); 
    DaysOfTheWeek.add("Thursday"); 

    DaysOfTheWeek.add(1, "Monday"); 

} 

그러나 다음과 같은 컴파일 오류를 제공합니다 : 또한

Error:(11, 22) error: <identifier> expected 
Error:(11, 23) error: illegal start of type 

그리고 경고 :

Cannot resolve symbol 'add' 

이 도와주세요.

+2

클래스에 임의의 코드를 붙이면 안됩니다. 코드는 블록으로 이동해야합니다. 또한 자바 명명 규칙을 고수하십시오 - 변수는'camelCase'에 있습니다. –

+0

코드가 메소드 내에 있어야합니다. –

답변

2

코드는 메소드 안에 있어야합니다.

public class Lists { 

    public static void main (String[] args) 
    { 
     ArrayList<String> DaysOfTheWeek = new ArrayList<String>(); 

     DaysOfTheWeek.add("Sunday"); 
     DaysOfTheWeek.add("Tuesday"); 
     DaysOfTheWeek.add("Wednesday"); 
     DaysOfTheWeek.add("Thursday"); 

     DaysOfTheWeek.add(1, "Monday"); 
    } 
} 
+0

오, 고마워. :) – Stranger

1

클래스 내에서 코드를 직접 실행할 수 없습니다. 이 방법 내부 또는 정적 블록에 있어야합니다 :

자바에서
import java.util.ArrayList; 

/** 
* Lists 
*/ 
public class Lists { 

    private static List<String> daysOfTheWeek = new ArrayList<String>(); 

    static { 
     daysOfTheWeek.add("Sunday"); 
     daysOfTheWeek.add("Tuesday"); 
     daysOfTheWeek.add("Wednesday"); 
     daysOfTheWeek.add("Thursday"); 
    } 
} 

는 정적 keywork은 필드 나 메소드는 클래스에 직접이며, 다음의 모든 인스턴스 건너 공유 나타냅니다. 즉, 객체 인스턴스에 의해 관리되는 것이 아니라 정의 클래스 자체에 의해 관리됩니다.

static을 사용하면 예와 같이 클래스의 모든 인스턴스에 전역 초기화를 제공 할 수 있습니다. 귀하의 캐쉬에서 귀하의 daysOfWeek 목록을 모든 귀하의 목록 인스턴스에서 사용할 수 있습니다.

참고 1 : 정적으로 목록을 채우기 위해 정적으로 선언해야했습니다. 주 2 : 목록을 arrayList로 선언하는 대신 List로 선언합니다. 더 일반적인 형식으로 ArrayList로 만듭니다.

자세히, 귀하의 비즈니스와 관련된 클래스 이름을 찾아야합니다.

관련 문제