class Parent
{ //need to access variable of child class
}
class Child extends Parent
{ int a=10;
}
-4
A
답변
0
리플렉션을 사용하여 디자인이나 발견을 통해 어떻게 아이에 대해 알아야합니다.
이 예제는 "패키지"또는 "공개"가 아닌 "개인"이 아닌 "a"에 종속됩니다.
public int getChildA() {
int a = 0;
if (this instanceof Child) {
a = ((Child)this).a;
}
return a;
}
0
정말로해야 할 일은 리플렉션을 사용하여 필드를 가져 와서 필드가 발견되지 않을 가능성을 확인하는 것입니다. 그러나이 여전히 미래의 디자인에서 정말 나쁜 생각,
static class Parent
{
public int getChildA(){
try {
Class clazz = Child.class;
Field f = clazz.getDeclaredField("a");
if(!f.isAccessible())
f.setAccessible(true);
return f.getInt(this);
} catch (NoSuchFieldException ex) {
//the parent is not an instance of the child
} catch (SecurityException | IllegalArgumentException | IllegalAccessException ex) {
Logger.getLogger(SOtests.class.getName()).log(Level.SEVERE, null, ex);
}
return -1;
}
}
static class Child extends Parent
{
int a=10;
}
public static void main(String[] args) {
Child c = new Child();
Parent p = (Parent) c;
System.out.println(p.getChildA());
}
출력이 10
입니다 : 같은 것을보십시오. 데모 클래스도 만들어야했지만 문제없이 다시 변경할 수 있습니다.
관련 문제
- 1. 어떻게 부모 클래스의 private 변수에 액세스 할 수 있습니까?
- 2. PHP에서 하위 클래스의 부모 클래스 상속 된 변수에 액세스
- 3. 부모 클래스의 하위 클래스 인스턴스에 액세스
- 4. 기본 클래스의 하위 클래스 변수에 액세스
- 5. Java에서 부모 클래스의 자식 클래스 생성자를 통해 부모 클래스의 수퍼 클래스 생성자를 호출 할 수 있습니까?
- 6. Java에서 상위 클래스의 모든 하위 클래스에 액세스
- 7. 하위 창에서 변수에 액세스 할 수 있습니까
- 8. 어떻게 부모 클래스 변수에 액세스 할 수 있습니까?
- 9. 내부 클래스의 메서드가 부모 클래스 메서드에 액세스 할 수 있습니까?
- 10. 하위 클래스 함수에서 부모 클래스 인스턴스 변수에 액세스
- 11. 부모 클래스의 하위 클래스 인스턴스
- 12. 자바의 하위 클래스 변수에 부모 클래스 할당
- 13. 내부 클래스의 외부 클래스 변수에 액세스
- 14. 다른 클래스의 변수에 액세스 할 수 없습니다.
- 15. 개체 하위 클래스의 변수에 액세스 할 수 없습니까?
- 16. Java에서 호출자 변수에 액세스 할 수 있습니까? 방법?
- 17. Java에서 상속 된 클래스 변수에 액세스
- 18. 정적 부모 메서드에서 하위 클래스 상수에 액세스
- 19. Swift : 다른 클래스의 변수에 액세스
- 20. 부모 클래스의 함수를 통해 하위 클래스 속성에 액세스
- 21. Mockito를 사용하여 하위 클래스의 부모 클래스 모의
- 22. 상위 클래스 변수에 액세스
- 23. 자식 클래스의 클래스 변수에 액세스하는 Python 부모 클래스
- 24. 자녀 클래스의 하위 항목에서 부모 멤버에 액세스
- 25. 클래스 인스턴스에서 개인 멤버 변수에 액세스 할 수 있습니까?
- 26. 자바에서 부모 클래스의 하위 상수에 액세스
- 27. 자식 클래스 Java에서 부모 클래스의 보호 된 변수 변경
- 28. 하위 클래스의 문서 클래스에서 변수에 액세스
- 29. 하위 클래스의 부모 클래스 필드 가져 오기
- 30. Python - 클래스 메서드 호출 중에 부모 클래스에서 하위 클래스의 변수에 액세스
no. 이것은 많은 성찰과 일반적으로 나쁜 생각 없이는 불가능합니다. – Dallen
부모에게는 하위 클래스에 대한 의존성이나 지식이 없어야합니다. 기간. –
이것은 디자인이 잘못되었음을 분명히 보여줍니다. – bradimus