「Java」PropertyDescriptorクラスのサンプル

2022年6月26日

PropertyDescriptorは、Java Beanが一対のアクセス用メソッドを使ってエクスポートする単一のプロパティを記述します。
書式
1.PropertyDescriptor(String propertyName, Class<?> beanClass)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
アクセス用メソッドgetFooおよびsetFooを使って、標準のJava規約に準拠しているプロパティのPropertyDescriptorを構築します。
アクセス用メソッドgetFooおよびsetFooを使って、標準のJava規約に準拠しているプロパティのPropertyDescriptorを構築します。
アクセス用メソッドgetFooおよびsetFooを使って、標準のJava規約に準拠しているプロパティのPropertyDescriptorを構築します。

2.getDeclaredFields()

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
このClassオブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのフィールドをリフレクトするFieldオブジェクトの配列を返します。
このClassオブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのフィールドをリフレクトするFieldオブジェクトの配列を返します。
このClassオブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのフィールドをリフレクトするFieldオブジェクトの配列を返します。

3.getReadMethod()
プロパティ値の読み込みに使うメソッドを取得します。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public Map<String, String> reflectObjf(ConfigDO cft) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
Object cft = new Object();
Class<?> cftClass = cft.getClass();
Field[] fields = cftClass.getDeclaredFields();
for (Field field : fields) {
PropertyDescriptor pd = new PropertyDescriptor(field.getName(), cftClass);
Method getMethod = pd.getReadMethod();
Object o = getMethod.invoke(cft);
map.put(field.getName(), o);
}
}
public Map<String, String> reflectObjf(ConfigDO cft) throws Exception { Map<String, Object> map = new HashMap<String, Object>(); Object cft = new Object(); Class<?> cftClass = cft.getClass(); Field[] fields = cftClass.getDeclaredFields(); for (Field field : fields) { PropertyDescriptor pd = new PropertyDescriptor(field.getName(), cftClass); Method getMethod = pd.getReadMethod(); Object o = getMethod.invoke(cft); map.put(field.getName(), o); } }
public Map<String, String> reflectObjf(ConfigDO cft) throws Exception {
      Map<String, Object> map = new HashMap<String, Object>();
      Object cft = new Object();
      Class<?> cftClass = cft.getClass();
      Field[] fields = cftClass.getDeclaredFields();
      for (Field field : fields) {
            PropertyDescriptor pd = new PropertyDescriptor(field.getName(), cftClass);
            Method getMethod = pd.getReadMethod();
            Object o = getMethod.invoke(cft);
            map.put(field.getName(), o);
      }
}

 

Java

Posted by arkgame