0
이것은 아마도 매우 바보 같은 방법 일 것입니다.하지만 우리는 컴포넌트 인 Fields가 많은 클래스를 가지고 있는데, 리플렉션을 사용하여 각 루프마다이를 추가하는 방법은 무엇입니까? 여기 스윙에서 반사를 통해 구성 요소를 추가 하시겠습니까?
는 (그것이 분명히 실패 할 운명이지만) 내가 지금까지 시도한 것입니다 : 필드의 각 클래스는 그래서 위에서 작동하지 않습니다하고 하지for(Field bits: this.getClass().getDeclaredFields()){
try {
this.add((Component)Class.forName(bits.getName()).newInstance());
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
입니다
,하지만 난 그들이 무엇인지 정의했으며 런타임에 존재해야합니다.어떻게해야합니까?
는 필드를 선언하지만, 할 수 있었다 것은 – mKorbel
@mKorbel 말할 않는 값이나 속성을 수정? – Pureferret
각 Fields는 컴파일 된 Object를 나타낼 수 있으므로 [런타임시 해당 값의 모든 속성을 변경하기 만하면됩니다] (http://stackoverflow.com/questions/6629995/test-if-a-class-contains-an-instance -variable-based-on-its-name), 컴파일러에서의 의도적 인 해킹 또는 컴파일 된 코드 해킹을위한 적절한 방법 – mKorbel