Java使用注解和反射簡化編程的方法示例
本文實例講述了Java使用注解和反射簡化編程的方法。分享給大家供大家參考,具體如下:
一 點睛
當(dāng)調(diào)用大量方法,可以使用反射和注解簡化編程。
二 代碼
import java.lang.annotation.Annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Method;
import java.util.ArrayList;
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface testAnnoation10 {
public String name() default "methodname";
public String unit() default "unit";
}
public class ch11_10 {
public static void main( String[] args ) throws Exception {
ch11_10 ch9 = new ch11_10();
Method method[] = ch9.getClass().getMethods();
for (Method method2 : method) {
Annotation annotation = method2.getAnnotation(testAnnoation10.class);
Class<?> ts[] = method2.getParameterTypes();
if (method2.getName().indexOf("getData") == -1) continue;
ArrayList<Object> params = new ArrayList<Object>();
for (Class<?> class1 : ts) {
if (class1.getSimpleName().equals("int")) {
params.add(10);
}
if (class1.getSimpleName().equals("String")) {
params.add("100");
}
}
if (annotation != null) {
testAnnoation10 t9 = (testAnnoation10) annotation;
System.out.println(t9.name() + " is " + method2.invoke(ch9, params.toArray()) + " " + t9.unit());
}
}
}
@testAnnoation10(name = "SOC", unit = "%")
public int getData1( int a ) {
return a;
}
@testAnnoation10(name = "Electricity", unit = "Ah")
public String getData2( String b ) {
return b;
}
@testAnnoation10(name = "Tempreture", unit = "AF")
public int getData3( int a, int b ) {
return a + b;
}
}
三 運行
Tempreture is 20 AF
Electricity is 100 Ah
SOC is 10 %
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
IKAnalyzer結(jié)合Lucene實現(xiàn)中文分詞(示例講解)
下面小編就為大家?guī)硪黄狪KAnalyzer結(jié)合Lucene實現(xiàn)中文分詞(示例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
SpringCloud-Alibaba-Sentinel-配置持久化策略詳解
這篇文章主要介紹了SpringCloud-Alibaba-Sentinel-配置持久化策略,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
IDEA修改java文件后 不用重啟Tomcat服務(wù)便可實現(xiàn)自動更新
這篇文章主要介紹了IDEA修改java文件后 不用重啟Tomcat服務(wù)便可實現(xiàn)自動更新,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
利用Java代碼實現(xiàn)區(qū)塊鏈技術(shù)
這篇文章主要介紹了利用Java代碼實現(xiàn)區(qū)塊鏈技術(shù),區(qū)塊鏈的應(yīng)用范圍幾乎無窮無盡,關(guān)于區(qū)塊鏈是如何運作的,下文來看看具體的內(nèi)容介紹吧,需要的朋友可以參考一下2022-04-04
使用IDEA向Gitee提交SpringBoot項目進行遠程管理
本文主要介紹了使用IDEA向Gitee提交SpringBoot項目進行遠程管理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
Spring?Boot?實現(xiàn)字段唯一校驗功能(實例代碼)
這篇文章主要介紹了Spring?Boot?實現(xiàn)字段唯一校驗,實現(xiàn)代碼很簡單,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08
基于SpringBoot實現(xiàn)動態(tài)配置數(shù)據(jù)庫的加載
這篇文章主要介紹了Spring?Boot?如何動態(tài)配置數(shù)據(jù)庫的加載,現(xiàn)項目有一個需求,期望通過在application.yml配置文件中設(shè)置一個開關(guān),來決定是否加載數(shù)據(jù)庫,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下2024-10-10

