激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java反射遍歷實體類屬性和類型,并賦值和獲取值的簡單方法

java反射遍歷實體類屬性和類型,并賦值和獲取值的簡單方法

2020-09-10 14:17Java教程網 Java教程

下面小編就為大家帶來一篇java反射遍歷實體類屬性和類型,并賦值和獲取值的簡單方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

實例如下:

java" id="highlighter_757825">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Date;
 
/**
 * 獲取實體類型的屬性名和類型
 * @param model 為實體類
 * @author kou 為傳入參數
 */
public class GetModelNameAndType
{
 
  public static void testReflect(Object model) throws SecurityException,
      NoSuchMethodException, IllegalArgumentException,
      IllegalAccessException, InvocationTargetException, InstantiationException
  {
    // 獲取實體類的所有屬性,返回Field數組
    Field[] field = model.getClass().getDeclaredFields();
    // 獲取屬性的名字
    String[] modelName = new String[field.length];
    String[] modelType = new String[field.length];
    for (int i = 0; i < field.length; i++)
    {
      // 獲取屬性的名字
      String name = field[i].getName();
      modelName[i] = name;
      // 獲取屬性類型
      String type = field[i].getGenericType().toString();
      modelType[i] = type;
      
      //關鍵。。??稍L問私有變量
      field[i].setAccessible(true);
      //給屬性設置
      field[i].set(model, field[i].getType().getConstructor(field[i].getType()).newInstance("kou"));
 
      // 將屬性的首字母大寫
      name = name.replaceFirst(name.substring(0, 1), name.substring(0, 1)
          .toUpperCase());
 
      if (type.equals("class java.lang.String"))
      {
        // 如果type是類類型,則前面包含"class ",后面跟類名
        Method m = model.getClass().getMethod("get" + name);
        // 調用getter方法獲取屬性值
        String value = (String) m.invoke(model);
        if (value != null)
        {
 
          System.out.println("attribute value:" + value);
        }
 
      }
      if (type.equals("class java.lang.Integer"))
      {
        Method m = model.getClass().getMethod("get" + name);
        Integer value = (Integer) m.invoke(model);
        if (value != null)
        {
          System.out.println("attribute value:" + value);
        }
      }
      if (type.equals("class java.lang.Short"))
      {
        Method m = model.getClass().getMethod("get" + name);
        Short value = (Short) m.invoke(model);
        if (value != null)
        {
          System.out.println("attribute value:" + value);
        }
      }
      if (type.equals("class java.lang.Double"))
      {
        Method m = model.getClass().getMethod("get" + name);
        Double value = (Double) m.invoke(model);
        if (value != null)
        {
          System.out.println("attribute value:" + value);
        }
      }
      if (type.equals("class java.lang.Boolean"))
      {
        Method m = model.getClass().getMethod("get" + name);
        Boolean value = (Boolean) m.invoke(model);
        if (value != null)
        {
          System.out.println("attribute value:" + value);
        }
      }
      if (type.equals("class java.util.Date"))
      {
        Method m = model.getClass().getMethod("get" + name);
        Date value = (Date) m.invoke(model);
        if (value != null)
        {
          System.out.println("attribute value:"
              + value.toLocaleString());
        }
      }
    }
  }
 
  public static void main(String[] args)
  {
    try
    {
      testReflect(new VO());
    }
    catch (SecurityException e)
    {
      e.printStackTrace();
    }
    catch (IllegalArgumentException e)
    {
      e.printStackTrace();
    }
    catch (NoSuchMethodException e)
    {
      e.printStackTrace();
    }
    catch (IllegalAccessException e)
    {
      e.printStackTrace();
    }
    catch (InvocationTargetException e)
    {
      e.printStackTrace();
    }
    catch (InstantiationException e)
    {
      e.printStackTrace();
    }
  }
 
}

以上這篇java反射遍歷實體類屬性和類型,并賦值和獲取值的簡單方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国内精品久久久久久影视8 嫩草影院在线观看网站成人 | 插插操 | 欧美福利视频一区二区三区 | 他也色在线视频 | 性欧美在线视频 | 99热草| 凹凸成人精品亚洲精品密奴 | 国产91丝袜在线播放 | 中文字幕涩涩久久乱小说 | 看91| 91免费高清视频 | 免费看黄色一级大片 | 黄色免费播放网站 | 久久精品久久久久 | 91丝袜 | 日夜操天天干 | 免费国产一级淫片 | 成人毛片100免费观看 | 成人福利视频 | 99极品视频 | 最近免费观看高清韩国日本大全 | 久久久久久久亚洲精品 | 欧美精品一区二区三区在线播放 | 欧美一级片免费在线观看 | 亚洲一区二区网址 | 黄色成年在线观看 | 免费国产成人高清在线看软件 | 九九热九九爱 | 色诱亚洲精品久久久久久 | 羞羞的动漫在线观看 | 日韩精品久久久久久久九岛 | 毛片网站网址 | 狠狠ri | 一级片九九 | 欧美三级短视频 | www久久久久久 | 久久亚洲春色中文字幕久久 | 亚洲小视频在线播放 | 日本人乱人乱亲乱色视频观看 | 久久精品黄| 5xx免费看 |