회원에게 Subclass
의 주소로 SuperClass
에 액세스 할 수 있습니까? 이 공통 protected
멤버 액세스의 반대 방향이 될 것이라고수퍼 클래스의 하위 클래스에서 보호 된 필드에 액세스 하시겠습니까?
private void accessFields() {
Field[] fields = this.getClass().getDeclaredFields();
for(Field field : fields) {
if(Modifier.isProtected(field.getModifiers()) {
//Will this always work? Or will get(this) throw an IllegalAccessException?
Object value = field.get(this);
}
}
}
참고하지 SubClass
는 protected
멤버에 액세스하지만, SuperClass
.
수퍼 클래스는 하위 클래스에 대한 지식이나 종속성을 가져서는 안되기 때문에 역으로 보입니다. 왜 이걸 고려하고 싶니? 내 조언은이 미친 요구 사항이 필요하지 않도록 코드를 다시 디자인하는 것입니다. –
물론, 당신은 모든 종류의 미친 것들을 반영 할 수 있습니다. 발에 총을 대고 방아쇠를 당기십시오. 코드를 작성했습니다. * 시도해보십시오 *! –
이유는 하위 클래스 필드에 주석을 달아서 수퍼 클래스의 주석 필드와 작업 할 수 있기를 원합니다. (즉, DB에 어떤 필드를 저장해야합니까?) 나쁜 디자인? 좋아요, 다시 생각해 볼게요, 고마워요! – SeriousBob