2013-03-08 3 views
4

Vaadin 프레임 워크를 사용하고 일부 동작을 무시하고 싶습니다.부모 클래스에서 비공개 필드를 변경하는 방법

필드의 모든 설정자는 부작용이있어 문제를 일으키지 않습니다.

이러한 이유로 개인 필드를 직접 설정하려고합니다.

@Override 
public void setItemDataSource(Item itemDataSource) { 
    //do some stuff 
    java.lang.reflect.Field privateField = this.getClass().getDeclaredField(itemDatasource); //Yes the spelling is correct. 
    privateField.set(this, itemDataSource); <<-- I get an error. 
    //do more stuff 

나는 다음과 같은 오류가 발생합니다 :

여기 내 코드입니다.

// TODO : 복사 붙여 넣기 오류.

명백히 나는 필드가 변경되어야하는 객체 인 것처럼 this을 포함시키지 않아도되지만 다른 참조가 필요합니다.
내가 뭘 잘못하고 있니?

+0

당신은 전체 예외 추적을 게시 할 수 있을까요? 비록 당신이해야한다고하더라도, 당신은 private 필드를위한 visibility 수정자를 설정하지 않았다고 가정합니다. 그러나, 나는 이런 식으로하는 것을 권장하지 않는다고 말해야한다 ... (아실 리야 스가 나를 이겼다. :)) – ppeterka

답변

관련 문제