日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
java反射三種方法有哪些

Java反射機制是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意方法和屬性,這種動態(tài)獲取信息以及動態(tài)調(diào)用對象方法的功能稱為Java語言的反射機制。

Java反射機制主要提供了以下三種功能:

1、在運行時判斷任意一個對象所屬的類;

2、在運行時構(gòu)造任意一個類的對象;

3、在運行時調(diào)用任意一個對象的方法。

下面將詳細介紹這三種功能的實現(xiàn)方法。

在運行時判斷任意一個對象所屬的類

要獲取對象的類信息,可以使用getClass()方法。

Object obj = new String("Hello, World!");
Class clazz = obj.getClass();
System.out.println(clazz); // 輸出:class java.lang.String

在運行時構(gòu)造任意一個類的對象

要構(gòu)造一個類的對象,首先需要獲取該類的Class對象,然后通過newInstance()方法創(chuàng)建對象。

try {
    Class clazz = Class.forName("java.lang.String");
    Object obj = clazz.newInstance();
    System.out.println(obj); // 輸出:null
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
    e.printStackTrace();
}

注意:newInstance()方法已經(jīng)過時,建議使用getDeclaredConstructor().newInstance()方法替代。

try {
    Class clazz = Class.forName("java.lang.String");
    Object obj = clazz.getDeclaredConstructor().newInstance();
    System.out.println(obj); // 輸出:null
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) {
    e.printStackTrace();
}

在運行時調(diào)用任意一個對象的方法

要調(diào)用對象的方法,首先需要獲取該對象的Class對象,然后通過getMethod()方法獲取Method對象,最后通過invoke()方法調(diào)用方法。

try {
    Class clazz = Class.forName("java.lang.String");
    Object obj = clazz.getDeclaredConstructor().newInstance();
    Method method = clazz.getMethod("length");
    Integer length = (Integer) method.invoke(obj);
    System.out.println(length); // 輸出:0
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) {
    e.printStackTrace();
}

Java反射機制是一種強大的工具,可以在運行時動態(tài)地獲取類的信息、創(chuàng)建對象和調(diào)用方法,反射操作相對復雜且效率較低,因此在實際開發(fā)中應謹慎使用。


新聞名稱:java反射三種方法有哪些
本文地址:http://www.5511xx.com/article/dpidpcg.html