取得class未开放属性

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章