最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

反射獲取java對象的幾種方式

 更新時間:2026年05月22日 09:01:08   作者:Mr.小海  
本文詳細(xì)介紹了如何通過反射在Java中獲取Class對象,使用不同構(gòu)造器創(chuàng)建對象,以及Spring框架中的對象獲取方法,包括構(gòu)造器配置和setter注入,下面就來詳細(xì)的介紹一下,感興趣的可以了解一下

獲取Class對象

  1. 已知全限定名
Class clazz = Class.forName("java.util.ArrayList");
  1. 已知類
Class clazz = String.class;
  1. 已有對象
String str = "Hello";
Class clazz = str.getClass();

已有Class對象

//1.創(chuàng)建對象
Class clazz = MyClass.class;  // 假設(shè) MyClass 是一個類
MyClass obj = (MyClass) clazz.newInstance();  // 創(chuàng)建 MyClass 的實(shí)例

//2.調(diào)用成員變量
Class clazz = MyClass.class;
Field field = clazz.getDeclaredField("fieldName");  // 獲取字段對象
field.setAccessible(true);  // 設(shè)置可訪問私有字段
Object value = field.get(obj);  // 獲取字段值
field.set(obj, newValue);  // 設(shè)置字段值
// 獲取字段值
Object value = field.get(obj);
System.out.println("原始值:" + value);
// 修改字段值
field.set(obj, newValue);
System.out.println("修改后:" + field.get(obj));

//3.調(diào)用方法
Class clazz = MyClass.class;
Method method = clazz.getDeclaredMethod("methodName", argTypes);  // 獲取方法對象
method.setAccessible(true);  // 設(shè)置可訪問私有方法
Object result = method.invoke(obj, args);  // 調(diào)用方法并獲取返回值

不同的構(gòu)造器創(chuàng)建對象

Class clazz = MyClass.class;

// 獲取無參構(gòu)造函數(shù),創(chuàng)建實(shí)例
MyClass obj1 = (MyClass) clazz.newInstance();

// 獲取有參構(gòu)造函數(shù),創(chuàng)建實(shí)例
Constructor constructor = clazz.getDeclaredConstructor(String.class, int.class);
MyClass obj2 = (MyClass) constructor.newInstance("name", 18);

spring獲取對象的方式

有以下類:

package com.xiaojiang.Spring;
 
public class Role {
     
    private int id;
    private String roleName;
    private String note;
     
    public Role(){}
     
    public Role(int id,String roleName, String note)
    {          
    	super();
        this.id = id;
        this.roleName = roleName;
        this.note = note;
    }     //setter,getter方法省略
 
}
<!--構(gòu)造器配置-->
<bean id="Role" class="com.xiaojiang.Spring.Role">
        <constructor-arg value="1" type="int"></constructor-arg>
        <constructor-arg value="小江" type="java.lang.String"></constructor-arg>
        <constructor-arg value="有點(diǎn)丑" type="java.lang.String"></constructor-arg>
    </bean>
<!--配置setter注入-->
<bean id="Role" class="com.xiaojiang.Spring.Role">
        <property name="id" value="1"><property>
        <property name="roleName" value="小江"><property>
        <property name="note" value="測試"><property>
</bean>   

基于接口的注入:對象賦值,將value的賦值改成ref賦值

到此這篇關(guān)于反射獲取java對象的幾種方式的文章就介紹到這了,更多相關(guān)反射獲取java對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java stringbuffer的用法示例

    java stringbuffer的用法示例

    這篇文章主要介紹了java stringbuffer的用法示例,字符串緩沖區(qū),是一個容器(當(dāng)返回到的是String時而且長度不確定,數(shù)據(jù)類型不確定時就可以用StringBuffer)其實(shí)底層還是數(shù)組,只是被封裝了,對外提供了方法,初始容量為16個字符
    2014-01-01
  • 使用mybatis的@Interceptor實(shí)現(xiàn)攔截sql的方法詳解

    使用mybatis的@Interceptor實(shí)現(xiàn)攔截sql的方法詳解

    攔截器是一種基于 AOP(面向切面編程)的技術(shù),它可以在目標(biāo)對象的方法執(zhí)行前后插入自定義的邏輯,本文給大家介紹了使用mybatis的@Interceptor實(shí)現(xiàn)攔截sql的方法,需要的朋友可以參考下
    2024-03-03
  • 詳解Spring Cloud Zuul 服務(wù)網(wǎng)關(guān)

    詳解Spring Cloud Zuul 服務(wù)網(wǎng)關(guān)

    本篇文章主要介紹了詳解Spring Cloud Zuul 服務(wù)網(wǎng)關(guān),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • 解決反射調(diào)用方法時獲取bean失敗的問題

    解決反射調(diào)用方法時獲取bean失敗的問題

    文章描述了通過反射機(jī)制調(diào)用類方法時遇到的@Autowired注入失敗和事務(wù)回滾失敗的問題,原因是反射生成的對象未被SpringIOC容器管理,解決方案是通過applicationContext.getBean("className")方法獲取Spring管理的bean來解決注入和事務(wù)問題
    2025-10-10
  • Elasticsearch常用DSL語法巧記

    Elasticsearch常用DSL語法巧記

    這篇文章主要為大家介紹了Elasticsearch常用DSL語法巧記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • SSM框架把日志信息保存到數(shù)據(jù)庫過程詳解

    SSM框架把日志信息保存到數(shù)據(jù)庫過程詳解

    這篇文章主要介紹了SSM框架把日志信息保存到數(shù)據(jù)庫過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • JUC循環(huán)屏障CyclicBarrier與CountDownLatch區(qū)別詳解

    JUC循環(huán)屏障CyclicBarrier與CountDownLatch區(qū)別詳解

    這篇文章主要為大家介紹了JUC循環(huán)屏障CyclicBarrier與CountDownLatch區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • JVM內(nèi)存分配及String常用方法解析

    JVM內(nèi)存分配及String常用方法解析

    這篇文章主要介紹了JVM內(nèi)存分配及String常用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • SpringBoot限制接口訪問頻率功能實(shí)現(xiàn)

    SpringBoot限制接口訪問頻率功能實(shí)現(xiàn)

    最近在基于SpringBoot做一個面向普通用戶的系統(tǒng),為了保證系統(tǒng)的穩(wěn)定性,防止被惡意攻擊,我想控制用戶訪問每個接口的頻率,接下來通過本文給大家介紹SpringBoot限制接口訪問頻率功能實(shí)現(xiàn),需要的朋友可以參考下
    2023-05-05
  • 基于java構(gòu)造方法Vector刪除元素源碼分析

    基于java構(gòu)造方法Vector刪除元素源碼分析

    這篇文章主要介紹了基于java構(gòu)造方法中對Vector刪除元素的源碼分析,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家早日升職加薪
    2021-09-09

最新評論

江口县| 铜陵市| 多伦县| 咸宁市| 德钦县| 资兴市| 大丰市| 金坛市| 钟祥市| 壤塘县| 龙胜| 柘城县| 兴仁县| 浮梁县| 沂南县| 石景山区| 三河市| 怀仁县| 涡阳县| 黑龙江省| 塔河县| 富川| 林周县| 正阳县| 鄂托克前旗| 云南省| 烟台市| 达拉特旗| 尼木县| 西峡县| 竹山县| 门源| 乌兰浩特市| 八宿县| 成武县| 历史| 郸城县| 壶关县| 马龙县| 伊春市| 巴中市|