1. 程式人生 > >反射獲取物件例項的欄位資訊和欄位值

反射獲取物件例項的欄位資訊和欄位值

package bea.com.util;

import java.lang.reflect.Field;

public class reflectUtil {

    /**
     * 反射輸出欄位型別的值
     * @param obj
     */
    public static void reflect(Object obj) {  
        if (obj == null) return;  
        Field[] fields = obj.getClass().getDeclaredFields();  
        for (int j = 0
; j < fields.length; j++) { fields[j].setAccessible(true); // 欄位名 System.out.print(fields[j].getName() + ","); // 欄位值 if (fields[j].getType().getName().equals( java.lang.String.class.getName())) { // String type
try { System.out.print(fields[j].get(obj)); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block
e.printStackTrace(); } } else if (fields[j].getType().getName().equals( java.lang.Integer.class.getName()) || fields[j].getType().getName().equals("int")) { // Integer type try { System.out.println(fields[j].getInt(obj)); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 其他型別。。。 } System.out.println(); } /** * 反射獲取物件的Id * @param obj * @return */ public static Integer getIdByreflect(Object obj) { if (obj == null) return null; Field[] fields = obj.getClass().getDeclaredFields(); for (int j = 0; j < fields.length; j++) { fields[j].setAccessible(true); // 欄位名 System.out.print(fields[j].getName() + ","); // 欄位值 if ( (fields[j].getType().getName().equals( java.lang.Integer.class.getName()) || fields[j].getType().getName().equals("int")) && fields[j].getName()=="id") { try { return fields[j].getInt(obj); } catch (IllegalArgumentException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IllegalAccessException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } return null; } }

結果:
id,0
name,張三

相關推薦

反射獲取物件例項資訊

package bea.com.util; import java.lang.reflect.Field; public class reflectUtil { /** * 反射輸出欄位型別的值 * @param obj

反射獲取物件中屬性的資訊,包括屬性的特性

/********************************************/ 反射獲取物件的屬性資訊 Type T = obj.GetType();//其中obj為一個類的物

通過java反射獲取物件

直接上Demo: package aaa; import java.lang.reflect.Field; public class test { public static void main(String[] args) throws Exception{ a

獲取Django model中的的verbose_name

定義模型:  class Game(models.Model): name = models.CharField(u'遊戲名稱',max_length=30) gameid = models.CharField(u'遊戲id',max_length=20)

sql自動獲取有格式的編碼,新增值

1、根據時間和特殊的字元加自增數獲取值,每天自動更新 SELECT CONCAT('${applyType}',DATE_FORMAT(NOW(),'%Y%m%d'), LPAD(RIGHT((CASE WHEN MAX(a.apply_no) IS NULL THEN '0

Hibernate JPA 根據Java類獲取對應資料庫的表名名稱

專案中使用 Hibernate JPA, 需求是根據 Entity的java 類,來獲取所有的對應的資料庫欄位。 直接上程式碼。 使用者類,對應資料庫的user表 import org.hibernate.validator.constraints.NotBlank;

SQLServer學習筆記 --- 如何獲取檢視 view 的型別

wechat:812716131 ------------------------------------------------------ 技術交流群請聯絡上面wechat ----------------------------------------------

C# 如何獲取SQL Server 中指定資料表的所有型別

如何獲取指定資料表的所有欄位名和欄位型別。SqlConnection.GetSchema方法有2個過載形式,獲取指定資料表的所有欄位名和欄位型別的祕密就在GetSchema (String, String[])的第二個引數中。 定義如下: public override DataTable GetS

獲取資料表的註釋

1、oracle:                 SELECT t1.COLUMN_NAME,                  t2.COMMENTS                  FROM user_tab_columns t1,                  user_col_comment

getDeclaredFields()-Reflection反射-獲取包括父類在內的所有

前言今天Android移動端要加個新功能,所以迴歸Android程式設計師的身份.開發的過程中,發現了之前的程式碼寫的有很多問題,真的應該把時間抽出來重構一下了.其中有反射的一個坑,工具類某方法反射獲取傳入Model的屬性值.但是當我把公共屬性抽出來做基類的時候,發現獲取不到

java通過反射獲取物件的變數變數值

在java中如果類的成員變數設定為私有的,一般情況下是不允許直接訪問這個變數的,但是有了反射之後,就可以直接獲取該變數的名稱和變數值 1. 訪問成員變數 (1)先定義一個使用者實體類 p

(繼承方式)反射獲取泛型類的型別物件

1.工具類,用於獲取泛型類的型別和物件public abstract class FatherReflectUtils<T> { public T getTInstance() th

遙感影象處理 | 採用GDAL讀取影象成功後獲取影象的一些基本資訊統計資訊(C#)

描述資訊:  const char*  GDALDataset.GetDriver().GetDescription(),通常是影象的格式 影象大小:  影象寬度  int  GDALDataset.GetRasterXSize() &nbs

Java反射 獲取Class及Class對應資訊

一.獲取Class的三種方式 Class.forName(String clazzName) 必須指定全限定類名(com.xxx.xxx.Xxx)  呼叫某個類的class屬性獲取Class物件  Object.class 呼叫某個物件的getCl

反射獲取類的 屬性名(name) (value)

1.新建物件user: package com.entity; public class User {     private String id;     private String name;   

查詢資料庫中某表的型別

mysql: 1. 查詢資料庫中的所有表:show tables; 2. 查詢表中的欄位名和欄位型別: show columns from table_name(表名);                 &n

使用FFMpeg 獲取MP3檔案中的資訊圖片

我們在播放音訊檔案時,如MP3格式的音訊檔案,一些播放器會顯示音樂名稱、專輯名稱、歌手、音樂影象等資訊,如下圖片所示: 下面介紹使用FFMpeg來獲取這些資訊。 使用函式avformat_open_input開啟檔案,結封裝。 使用函式avformat_fi

Java中使用反射獲取一個類的全部資訊

public static void getFunctionAllMessages(String className) throws ClassNotFoundException, InstantiationException, IllegalAccessExcept

利用反射獲取實體類的相關資訊

假設我們現在有一個實體類sys_config 1.獲取該實體的資訊有3種方法: 第一種(通過物件呼叫 getClass() 方法來獲取,通常應用在:比如你傳過來一個 Object 型別的物件,而我不知道你具體是什麼類,用這種方法): // 利用new實體來獲取,

獲取物件屬性的點方法中括號法的區別

今天寫題的時候遇到用點取不到物件這個問題, 題目大致是這個樣子 console.log($element);//{BranchId: "0003", CHName: "哈哈哈", ShortName: "嘻嘻嘻"} console