Java動(dòng)態(tài)調(diào)用類(lèi)中方法代碼
在Java中,調(diào)用類(lèi)的方法有兩種方式:對(duì)于靜態(tài)方法可以直接使用類(lèi)名調(diào)用,對(duì)于非靜態(tài)方法必須使用類(lèi)的對(duì)象調(diào)用。反射機(jī)制提供了比較另類(lèi)的調(diào)用方式,可以根據(jù)需要指定要調(diào)用的方法,而不必在編程時(shí)確定。調(diào)用的方法不僅限于public的,還可以是private的。編寫(xiě)程序,使用反射機(jī)制調(diào)用Math類(lèi)的靜態(tài)方法sin()和非靜態(tài)方法equals()。
思路如下:使用Math.class.getDeclaredMethod("sin", Double.TYPE);訪問(wèn)指定的方法,其中”sin”表示要訪問(wèn)的方法的名稱(chēng)為sin,Double.TYPE表示入口參數(shù)的類(lèi)型為double。
代碼如下:
import java.lang.reflect.Method;
public class DongTai {
public static void main(String[] args) {
try {
System.out.println("調(diào)用Math類(lèi)的靜態(tài)方法sin()");
Method sin = Math.class.getDeclaredMethod("sin", Double.TYPE);
Double sin1 = (Double) sin.invoke(null, new Integer(1));
System.out.println("1的正弦值是:" + sin1);
System.out.println("調(diào)用String類(lèi)的非靜態(tài)方法equals()");
Method equals = String.class.getDeclaredMethod("equals", Object.class);
Boolean mrsoft = (Boolean) equals.invoke(new String("明日科技"), "明日科技");
System.out.println("字符串是否是明日科技:" + mrsoft);
} catch (Exception e) {
e.printStackTrace();
}
}
}
效果如圖:
- Java實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建類(lèi)操作示例
- Java動(dòng)態(tài)獲取實(shí)現(xiàn)某個(gè)接口下所有的實(shí)現(xiàn)類(lèi)對(duì)象集合
- Java實(shí)現(xiàn)的properties文件動(dòng)態(tài)修改并自動(dòng)保存工具類(lèi)
- Java 創(chuàng)建動(dòng)態(tài)類(lèi)和查看方法列表信息的實(shí)例
- java 利用java反射機(jī)制動(dòng)態(tài)加載類(lèi)的簡(jiǎn)單實(shí)現(xiàn)
- 詳解Java多態(tài)對(duì)象的類(lèi)型轉(zhuǎn)換與動(dòng)態(tài)綁定
- 詳解Java Spring各種依賴(lài)注入注解的區(qū)別
- Java的Spring框架中bean的繼承與內(nèi)部bean的注入
- 詳解Java的MyBatis框架與Spring框架整合中的映射器注入
- Java 動(dòng)態(tài)生成類(lèi)和實(shí)例, 并注入方法操作示例
相關(guān)文章
Java的線程與進(jìn)程以及線程的四種創(chuàng)建方式
這篇文章主要為大家詳細(xì)介紹了Java的線程與進(jìn)程以及線程的四種創(chuàng)建方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03Spring MVC全局異常處理和單元測(cè)試_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
本篇文章主要介紹了Spring MVC全局異常處理和單元測(cè)試,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(63)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-08-08IntelliJ IDEA 的 Spring 項(xiàng)目如何查看 @Value 的配置和值(方法詳解)
這篇文章主要介紹了IntelliJ IDEA 的 Spring 項(xiàng)目如何查看 @Value 的配置和值,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10spring cloud consul注冊(cè)的服務(wù)報(bào)錯(cuò)critical的解決
這篇文章主要介紹了spring cloud consul注冊(cè)的服務(wù)報(bào)錯(cuò)critical的解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03JAVA過(guò)濾標(biāo)簽實(shí)現(xiàn)將html內(nèi)容轉(zhuǎn)換為文本的方法示例
這篇文章主要介紹了JAVA過(guò)濾標(biāo)簽實(shí)現(xiàn)將html內(nèi)容轉(zhuǎn)換為文本的方法,涉及java針對(duì)HTML代碼的正則替換相關(guān)操作技巧,需要的朋友可以參考下2017-07-07spring boot aop 記錄方法執(zhí)行時(shí)間代碼示例
這篇文章主要介紹了spring boot aop 記錄方法執(zhí)行時(shí)間代碼示例,分享了相關(guān)代碼,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02Hadoop 使用IntelliJ IDEA 進(jìn)行遠(yuǎn)程調(diào)試代碼的配置方法
這篇文章主要介紹了Hadoop 使用IntelliJ IDEA 進(jìn)行遠(yuǎn)程調(diào)試代碼的配置方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04