java中經常有使用源生組件的情況,但是有時會出現,想使用的控件某些屬性,未被公開,此時可以使用此方法取得。
如swt裏的ccombo,想使用它的text屬性,可以如下使用
private Text getText(){
//get Text control
Object o = null;
Class<?> clazz = cc.getClass();
try {
Field f = clazz.getDeclaredField("text");
f.setAccessible(true);
o = f.get(cc);
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return (Text)o;
}