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;
}