java - Java의 내부 클래스에서 변수에 액세스

기사 출처 java inner-classes extern

내부 클래스에서 변수를 수정해야합니다. 컴파일러는 변수를 정적으로 선언해야하지만 수정할 수 없다고 말합니다. 코드는 다음과 같습니다.

public class Outter{
   private boolean b;

   public Outter(){  
      b = false;
      new Inner(b);
   }
}

public class Inner{
   public Inner(boolean b){
      b = true;
   }
}


C에서 "extern"과 같은 것이 있습니까? 아니면 b 변수를 수정할 수 있도록 어떤 해결책이 있습니까? 나는 그것을 정적으로 설정하고 전체 Outter 클래스를 매개 변수로 전달하려고 시도했지만 동일한 문제가 계속 발생합니다.

편집하다:
코드는 다음과 같습니다.

public class MainView{
   private boolean view;
   //JMenus,JMenuItems, JPanels.. declarations
   private JFrame frame
   MainView(){
     view = true;
     //initializations
     create_listeners();
   }
   public void create_listeners(){
      Menu.addActionListener(
        new ActionListener() { 
            public void actionPerformed(ActionEvent event){
                if(View){
                    new View2(frame);
                    View = false;
                }
            }

        }  
   );
   }
}

public class View2{
   private JButton back = new JButton("Back");
   public View2(JFrame frame){
    //initialitzatons
    create_listeners();
}
   public void create_listeners(){
          back.addActionListener(
        new ActionListener() { 
            public void actionPerformed(ActionEvent event){
                frame.remove(MainPanel);
                View = true;// HERE, i want to modify the variable
                }

        }  
    );
    }
 }


문제는 View2 클래스에서 "View"변수를 수정하는 방법입니다.

잘못된 표로 인해 죄송합니다. 신속하게 처리했으며 이해하려면 코드 번역이 필요했습니다.
구문은 다음과 같으며 Outter를 사용하여 외부 클래스에 대한 참조를 얻습니다.

public class Outter{
   private boolean b;

   class Inner{
       public Inner(boolean b){
          Outter.this.b = true;
       }
   }
}


편집 : 참조를 전달하여 b를 수정하려는 것 같습니다. 자바에서는 불가능합니다. 변수는 참조 변수의 복사본 (참조 변수는 포인터와 같은 것임)에 의해 인수로 전달되거나 기본 요소의 경우 복사본에 의해 전달됩니다.

이 질문에 대해 Stack Overflow에서 비슷한 토론을 찾았습니다: https://stackoverflow.com/questions/13836710/

관련 기사
java - ArrayIndexOutOfBoundsException 데이터 액세스 시도
java - charAt ()은 문자열을 반환하지 않습니까?
enums - Java API에서 열거 형 사용
java - 자바에서 정수 비교
java - RandomAccess 인터페이스, 왜 메소드가 없습니까?
java - 날짜 시간 형식 Java로 시간 추가
java - Java 인터페이스에 대한 Java 특성 파일 바인딩
java - "리소스로 시도"에 문제가 있음
java - 배포 (게시) 후 Weblogic 오류 : 오류 503-- 서비스를 사용할 수 없음
java - Java의 arraylist에 대용량 파일을로드하는 가장 좋은 방법