2014-03-03 2 views
-1

일부 코드를 빌드하고이 오류를 계속 실행하려고합니다. 필자는 그 주위에서 여러 가지 방법을 시도했지만, 그 다음에는 Journey 내의 메소드 실행을 망쳐 놓습니다.정적이 아닌 변수 newJourney를 정적 컨텍스트에서 참조 할 수 없습니다.

Ive는 다른 스레드를 보았지만 답을 찾을 수없는 것 같습니다.

class Main{ 
private Journey newJourney; 

public static void main(String[] args){ 
     startStation.addItemListener(
      new ItemListener(){ 
       public void itemStateChanged(ItemEvent event){ 
        if(event.getStateChange()==ItemEvent.SELECTED){ 

         String selectedItem = startStation.getSelectedItem().toString(); 
         newJourney = new Journey(); 
         newJourney.setStart(selectedItem); 


        } 
       } 
      } 
     ); 

명백히 일부 코드는 제외되었지만 중요한 것은 그만큼 중요합니다.

는 어떤 도움을 주시면 감사 및 오류 메신저 recieveing는 오류가 모든 것을 말해

Main.java:102: non-static variable newJourney cannot be referenced from a static context 
         newJourney.setStart(selectedItem); 
         ^
+1

관련 항목에서 오른쪽을보세요. 그것들이 충분하지 않다면, 아무도 당신을 도울 것입니다. –

답변

0

입니다. newJourney는 main이 정적 메서드 인 정적 변수가 아닙니다. 이것은 메인이 그것을 액세스 할 수 없음을 의미합니다. 이 객체를 사용하고 있기 때문에

private static Journey newJourney; 

이 다음 코드는

private static Journey newJourney; 
0

당신은 다음과 같은 sataic 하나로 개체를 선언해야합니다 필요

private Journey newJourney; 

작동하지 않습니다 의미 non-static 방법은 static 중 하나임

0

newJourney은 정적이 아니므로 정적 메서드에 액세스하려고합니다.

Java 개념으로 정적 메서드 내에서 객체의 상태를 변경할 수 없습니다.

0

정적 기본 메서드가있는 클래스에 대해 새 개체를 만든 다음 해당 개체에서 모든 작업을 수행하는 다음 패러다임을 채택 할 수 있습니다.

class Main{ 
private static final Main me; 
private Journey newJourney; 

public static void main(String[] args){ 
    me = new Main(); 
    me.doWork(args); 
} 
private void doWork(String[] args) { 
    startStation.addItemListener(
     new ItemListener(){ 
      public void itemStateChanged(ItemEvent event){ 
       if(event.getStateChange()==ItemEvent.SELECTED){ 
        String selectedItem = startStation.getSelectedItem().toString(); 
        newJourney = new Journey(); 
        newJourney.setStart(selectedItem); 
       } 
      } 
     } 
    ); 
} 
관련 문제