一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

服務器之家 - 編程語言 - Java教程 - java基于反射得到對象屬性值的方法

java基于反射得到對象屬性值的方法

2020-09-02 09:57ITshu Java教程

這篇文章主要介紹了java基于反射得到對象屬性值的方法,結合實例形式分析了java基于反射獲取對象屬性值的相關實現方法與操作技巧,需要的朋友可以參考下

本文實例講述了java基于反射得到對象屬性值的方法。分享給大家供大家參考,具體如下:

通過反射機制得到對象中的屬性和屬性值 在對象中private沒問題,在別的類中有時會報異常。下面的例子是在本對象中

?
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
/**
* Engine entity. @author MyEclipse Persistence Tools
*/
public class Engine implements java.io.Serializable {
 // Fields
 private Long engineId;
 private String engineName;
 private String engineType;
 // Constructors
 /** default constructor */
 public Engine() {
 }
 /** minimal constructor */
 public Engine(Long engineId) {
 this.engineId = engineId;
 }
 public Engine(String engineName, String engineType) {
 this.engineName = engineName;
 this.engineType = engineType;
 }
 /** full constructor */
 public Engine(Long engineId, String engineName, String engineType) {
 this.engineId = engineId;
 this.engineName = engineName;
 this.engineType = engineType;
 }
 // Property accessors
 public Long getEngineId() {
 return this.engineId;
 }
 public void setEngineId(Long engineId) {
 this.engineId = engineId;
 }
 public String getEngineName() {
 return this.engineName;
 }
 public void setEngineName(String engineName) {
 this.engineName = engineName;
 }
 public String getEngineType() {
 return this.engineType;
 }
 public void setEngineType(String engineType) {
 this.engineType = engineType;
 }
public static void main(String[] args) throws Exception {
 Engine m = new Engine("汽車","發動機");
 Class clazz = m.getClass();
 Field[] f = clazz.getDeclaredFields();
 String[] name = field2Name(f);
 Object[] value = field2Value(f, m);
 showNameAndValue(name, value);
 }
 public static void showNameAndValue(String[] name, Object[] value) {
 for (int i = 0; i < name.length; i++) {
  System.out.println("--" + i + "--");
  System.out.println("name:" + name[i]);
  System.out.println("Value:" + value[i]);
  System.out.println("--   --");
 }
 }
 public static String[] field2Name(Field[] f) {
 String[] name = new String[f.length];
 for (int i = 0; i < f.length; i++) {
  name[i] = f[i].getName();
 }
 return name;
 }
 public static Object[] field2Value(Field[] f, Object o) throws Exception {
 Object[] value = new Object[f.length];
 for (int i = 0; i < f.length; i++) {
  value[i] = f[i].get(o);
 }
 return value;
 }
}

如果想調用private的屬性的屬性值,則要調用他的get方法了具體做法是:

把field2Value方法改為如下方式,這樣在別的類中也可以得到private的屬性值了

?
1
2
3
4
5
6
7
8
9
10
11
12
public static Object[] field2Value(Field[] fields, Object o) throws Exception {
 Object[] values = new Object[fields.length];
 Class classType = o.getClass();
 for (int i = 0; i < fields.length; i++) {
  String fieldName = fields[i].getName();
  String firstLetter = fieldName.substring(0, 1).toUpperCase();
  String getMethodName = "get" + firstLetter + fieldName.substring(1);
  Method getMethod = classType.getMethod(getMethodName, new Class[] {});
  values[i] = getMethod.invoke(o, new Object[] {});
 }
 return values;
}

希望本文所述對大家java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91桃花| 国产精品片 | 男人午夜免费视频 | 99在线视频免费 | 男人日女人的b | 我们日本在线观看免费动漫下载 | 国产情侣自拍网 | s8sp加密路线和免费路线首页 | 成年人免费观看视频网站 | 国产成人高清精品免费观看 | 亚洲 日韩 在线 国产 视频 | 亚洲大片免费观看 | 国产成人刺激视频在线观看 | 五月婷婷伊人网 | 亚洲视频免费 | 荡女淫春2未删减版 | 极品丝袜老师h系列全文阅读 | 男人午夜剧场 | www.爱操 | 亚洲国产成人久久综合一 | 午夜视频在线网站 | 经典三级四虎在线观看 | 国产午夜精品一区二区三区不卡 | 吉川爱美与黑人解禁 | 精品久久久久免费极品大片 | 91原创国产 | 亚洲精品国产在线网站 | 日韩伦理在线看 | 14一15sexvideo日本| 激情婷婷成人亚洲综合 | 69日本xxxhd | 顶级尤物极品女神福利视频 | 国产欧美又粗又猛又爽老 | 国产精品亚洲片在线观看麻豆 | 2012年中文字幕在线看 | 亚洲成人一区 | 日本连裤袜xxxxx在线视频 | 好男人资源免费播放在线观看 | 红杏网| 成全动漫视频在线观看 | 51精品|