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

反射獲取java對(duì)象的幾種方式

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

獲取Class對(duì)象

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

已有Class對(duì)象

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

//2.調(diào)用成員變量
Class clazz = MyClass.class;
Field field = clazz.getDeclaredField("fieldName");  // 獲取字段對(duì)象
field.setAccessible(true);  // 設(shè)置可訪問(wèn)私有字段
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);  // 獲取方法對(duì)象
method.setAccessible(true);  // 設(shè)置可訪問(wèn)私有方法
Object result = method.invoke(obj, args);  // 調(diào)用方法并獲取返回值

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

Class clazz = MyClass.class;

// 獲取無(wú)參構(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獲取對(duì)象的方式

有以下類:

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="測(cè)試"><property>
</bean>   

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

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

相關(guān)文章

  • java stringbuffer的用法示例

    java stringbuffer的用法示例

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

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

    攔截器是一種基于 AOP(面向切面編程)的技術(shù),它可以在目標(biāo)對(duì)象的方法執(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),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 解決反射調(diào)用方法時(shí)獲取bean失敗的問(wèn)題

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

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

    Elasticsearch常用DSL語(yǔ)法巧記

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

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

    這篇文章主要介紹了SSM框架把日志信息保存到數(shù)據(jù)庫(kù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(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常用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • SpringBoot限制接口訪問(wèn)頻率功能實(shí)現(xiàn)

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

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

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

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

最新評(píng)論

铁岭县| 福安市| 汪清县| 沈阳市| 娱乐| 天门市| 泾源县| 团风县| 绵阳市| 内江市| 黔西县| 沁源县| 科技| 阿合奇县| 安图县| 昌黎县| 东乡族自治县| 保德县| 克山县| 台北县| 玉屏| 丁青县| 江安县| 武宁县| 哈尔滨市| 文安县| 榆林市| 资中县| 舒城县| 建阳市| 临江市| 广河县| 礼泉县| 九台市| 合山市| 岱山县| 青铜峡市| 登封市| 环江| 湘阴县| 柞水县|