반응형
IllegalAccessException 예외 예제
Java에서는 IllegalAccessException이라는 런타임 예외가 있습니다. 이 예외는 클래스, 메소드, 필드 등의 접근을 제한하여 언제든지 발생할 수 있습니다. IllegalAccessException은 Java의 접근 권한 시스템의 불일치로 인해 발생합니다.
IllegalAccessException 예제
다음은 IllegalAccessException 예제를 보여줍니다.
public class MyClass {
private int myField = 0;
public void setMyField(int value) {
myField = value;
}
public int getMyField() {
return myField;
}
}
public class MyOtherClass {
public static void main(String[] args) {
MyClass myClass = new MyClass();
myClass.myField = 10; // 에러: IllegalAccessException 발생
}
}
위 코드에서 MyOtherClass
는 MyClass
의 myField
을 직접 접근하고 있습니다. 하지만 MyClass
에서 선언한 myField
은 private
접근 제한자로 선언되어 있습니다. 따라서 MyClass
의 필드를 다른 클래스에서 접근하는 것이 불가능합니다. 따라서 위 예제에서는 IllegalAccessException 예외가 발생합니다.
IllegalAccessException 해결 방법
IllegalAccessException은 자바의 접근 권한 시스템의 불일치로 인해 발생합니다. 해결하기 위해서는 접근 권한 시스템을 맞추고 접근 권한을 열면 됩니다.
예를 들어 위 예제에서는 MyOtherClass
에서 MyClass
의 myField
를 접근하려고 하고 있습니다. 이 때 MyClass
의 myField
를 public
접근 제한자로 변경하면 MyOtherClass
에서도 접근할 수 있게 됩니다.
public class MyClass {
public int myField = 0; // public 접근 제한자로 변경
public void setMyField(int value) {
myField = value;
}
public int getMyField() {
return myField;
}
}
코멘트
IllegalAccessException은 클래스, 메소드, 필드 등의 접근을 제한하여 언제든지 발생할 수 있는 런타임 예외입니다. 해결하기 위해서는 접근 권한 시스템을 맞추고 접근 권한을 열면 됩니다.
반응형
'Error(Exception) > ERROR-JAVA' 카테고리의 다른 글
[자바(java)] IllegalStateException (0) | 2023.02.19 |
---|---|
[자바(java)] IllegalMonitorStateException (0) | 2023.02.19 |
[자바(java)] FileNotFoundException (0) | 2023.02.17 |
[자바(java)] ExceptionInInitializerError (0) | 2023.02.17 |
[자바(java)] EOFException (0) | 2023.02.16 |
댓글