1. 程式人生 > >利用Java反射根據屬性名獲取物件值和型別程式碼

利用Java反射根據屬性名獲取物件值和型別程式碼

/**
     * 通過屬性名獲取物件值
     * @param mp 要操作的物件 這裡以MoveProgress 為例子
     * @param vill  要獲取值的欄位名
     * @return
     * @throws Exception
     *
     */
    public Object getObValue(MoveProgress mp,String vill) throws Exception{
        //獲取所有屬性
        Field[] field= mp.getClass().getDeclaredFields();
       //初始化類
        Object info= mp.getClass().newInstance();
    
        String name=vill.toUpperCase();//把欄位名變為大寫
        //得到get方法名
        name="get"+name.charAt(0)+vill.substring(1);
        
        //得到方法
         Method method= mp.getClass().getMethod(name);
        //實現方法
        Object k= method.invoke(mp);//動態呼叫類的方法
        return k;
        
    }
    /**
     * 根據欄位名得到型別
     * @param ca  要操作的類
     * @param name  要獲型別的欄位名
     * @return
     * @throws Exception
     *
     */
   public String getObStyle(Class ca,String name) throws Exception{
       
        Class c=null;
        Field[] field= ca.getDeclaredFields();
        Object info= ca.newInstance();
        for (int i = 0; i < field.length; i++) {
           
        if(field[i].getName().equals(name)){
        //得到型別
         c=field[i].getType();
       
         break;
        }
        }
       
        return c.getName();
   
    }



相關推薦

利用Java反射根據屬性獲取物件型別程式碼

/**      * 通過屬性名獲取物件值      * @param mp 要操作的物件 這裡以MoveProgress 為例子      * @param vill  要獲取值的欄位名      * @return      * @throws Exception   

利用java 反射原理寫了一個賦通用類

      首先了解一下反射的原理,什麼是反射?所謂的反射就是指java 語言在執行時擁有一項自觀的能力,反射能使你得到裝載到 jvm 中的類的內部資訊,它不需要你在編碼的時候就知道所需類的內部資訊,允許程式執行時才得到所需類的內部資訊。反射能夠構建靈活的應用的程式。 

java 反射機制--根據屬性獲取屬性

obj popu null tail tools pop 對象 href pro 1.考慮安全訪問範圍內的屬性,沒有權限訪問到的屬性不讀取 [java] view plain copy /** * 根據屬性名獲取屬性值 * *

java反射機制根據屬性獲取屬性

一、考慮安全訪問範圍內的屬性,沒有許可權訪問到的屬性不讀取 /** * 根據屬性名獲取屬性值 * * @param fieldName * @param object * @return */ p

** * 根據屬性獲取屬性 * * @aram fie理直氣壯休假去高薪亦難換

jar 擴展 初始 task 圖片 休假 北京 不同 public Allure 是一個reor框架,支持多語言,多平臺。可以通過JuniTesngyes等產生的結果集生成酷炫好看的reor;同時也可以支持自定義字段,將你想展示 本文基於幾篇經典的論文,對 Aenion 模

android根據屬性獲取屬性方法

  private Object getFieldValueByName(String fieldName, Object o)     {         try         {             String firstLetter = fieldName.s

利用java反射機制一次性呼叫實體類getset方法,簡化更多程式碼

外部呼叫getProperty方法時只需要傳入實體物件即可;例如TestUtil.getProperty(new User()); 外部呼叫setProperty方法時只需要傳入實體物件和要set的值即可;例如TestUtil.setProperty(new User()

java反射工具類--通過指定屬性,獲取/設定物件屬性

java物件通過點運算子操作物件屬性的方式沒法使用for,while等迴圈,此工具主要解決這一問題. 例如:有一物件包含屬性有一定規律 obj1: { name1: "張三", age1: 1, name2: "李四", age2: 2

Java基礎之反射應用(如何獲取物件的構造方法、屬性以及、基本方法)

反射實戰:新建Student類,利用反射原理輸出Student的構造方法,屬性,普通方法,引數列表等等資訊。 反射資料:查詢java_API之:java.lang.reflect包下。 Student類: package com.briup.ch24; public class St

java 將A物件copy到B物件根據屬性設定屬性

package com.zyhao.openec.catalog.pojo; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.la

javajava反射機制,動態獲取對象的屬性對應的參數值,並屬性按照字典序排序,Field.setAccessible()方法的說明【可用於微信支付 簽名生成】

modifier 直接 this 字段值 1-1 讓我 toupper ima play 方法1:通過get()方法獲取屬性值 package com.sxd.test.controller; public class FirstCa{ private

Java反射《三》獲取屬性

blog tac access field 訪問修飾符 static for student pan 1 package com.study.reflect; 2 3 import java.lang.reflect.Field; 4 /** 5 * 反射,

利用java反射調用類的屬性方法

strong lec 測試結果 正在 bject cte static err ucc 十一結束了,盼望著的十一要做的事情也沒有做成。有時候的預期和現實總是有些許的變故,Economic freedom--閑扯結束。今天,就簡單點。 一、定義 java反射:程序運行時,通過

java反射機制——三種獲取class物件的方法

package cn.itcast.reflect.demo; import cn.itcast.bean.demo.Person; /** * * 獲取Class物件的3中方法: * * * */ public class ReflectDemo1 { public st

通過java反射機制,Method獲取出來的引數

記錄2018年我遇見的一個大坑!!!!! 前言 具體介紹 出現問題 解決 前言 最近我一直在嘗試手寫一個簡單的框架,其中,在補全mvc框架的時候,遇到了Method方法關於版本以及一些奇奇怪怪的坑。 具體介紹

java 反射(一) 獲取Class物件的三種方式

package com.reflect; /** * 三種獲得Class物件的方式 * @author lr * */ public class Demo1 { public static void main(String[] args) throws ClassNotFound

Java反射的定義以及獲取class物件的三種方式

1、什麼是反射技術? java反射機制是在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意一個方法和屬性。 應用程式已經執行,無法在其中進行new物件的建立,就無法使用物件。這時可以根據配置檔案的類全名去找對應的位元組碼檔案(class檔案)

C++實現反射(根據動態建立物件)

   和網上大多數實現一樣,這裡也是採用工廠方法來實現物件的動態建立。大致原理為,建立一個單例工廠類,其中維護一個map(類名->物件建立函式)。建立物件時,傳入類名,然後根據此類名查詢出建立函式,最後建立物件。     採用這種方式,有一

利用Java反射機制實現物件相同欄位的複製

一、如何實現不同型別物件之間的複製問題? 1、為什麼會有這個問題? 近來在進行一個專案開發的時候,為了隱藏後端資料庫表結構、同時也為了配合給前端一個更友好的API介面文件(swagger API文件),我採用POJO來對應資料表結構,使用VO來給傳遞前端要展示的資料,同時使用DTO來進行請求

利用java反射實現兩個具有相同屬性bean賦

import java.lang.reflect.Field; import java.lang.reflect.Method; public class ClassReflection { /** * @param class1 用於賦值的實體類