導航:首頁 > 編程語言 > java獲取方法調用

java獲取方法調用

發布時間:2022-10-01 08:29:29

『壹』 java中的一個類怎麼調用另一個類中的方法

//先定義一個類

(1)java獲取方法調用擴展閱讀:

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。

Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點 。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等 。

『貳』 Java里如何獲取調用此方法的方法

心情好 告訴你吧 Thread.currentThread().getStackTrace()[1]是你當前方法執行堆棧 Thread.currentThread().getStackTrace()[2]就是上一級的方法堆棧 以此類推

『叄』 java 獲取調用此方法的方法的註解

importjava.lang.annotation.Retention;
importjava.lang.annotation.RetentionPolicy;


@Retention(value=RetentionPolicy.RUNTIME)
public@interfaceMyAnnotation{
Stringname();

}

publicclassAnnonTestA{

publicvoidmethodA(){

}

@MyAnnotation(name="111")
publicvoidmethodA(Stringa)throwsException{
AnnonTestB.methodB("methodA",String.class);
}
}
importjava.lang.annotation.Annotation;
importjava.lang.reflect.Method;

publicclassAnnonTestB{

publicstaticvoidmethodB(StringmethodName,Class<?>...parameterTypes)throwsException{
AnnonTestAannonTestA=newAnnonTestA();
//獲取AnnotationTest2的Class實例
Class<AnnonTestA>c=AnnonTestA.class;
//獲取需要處理的方法Method實例
Methodmethod=c.getMethod(methodName,parameterTypes);
Method[]methods=c.getMethods();
//判斷該方法是否包含MyAnnotation註解
if(method.isAnnotationPresent(MyAnnotation.class)){
//獲取該方法的MyAnnotation註解實例
MyAnnotationmyAnnotation=method
.getAnnotation(MyAnnotation.class);
//執行該方法
// method.invoke(annonTestA,"12345");
//獲取myAnnotation
Stringvalue1=myAnnotation.name();
System.out.println(value1);
}
//獲取方法上的所有註解
Annotation[]annotations=method.getAnnotations();
for(Annotationannotation:annotations){
System.out.println(annotation);
}
}
}
importjava.io.*;
importjava.lang.annotation.Annotation;
importjava.lang.reflect.Method;

publicclassTestString{
publicstaticvoidmain(String[]args)throwsException{
AnnonTestAannonTestA=newAnnonTestA();
annonTestA.methodA("123");
}
}

代碼都給上了,不明白再追問吧。

參考地址:http://blog.csdn.net/bao19901210/article/details/17201173

『肆』 java 獲取方法調用者 的參數

區分是調用哪個test是由你調用的時候的參數決定的。
例如:調用時test(1),那麼你調用的是
test(int i){
new A().getMethod();
}
這個方法
如果調用的時候是test("str")調用的就是
test(String i){
new A().getMethod();
}
了。

『伍』 java 獲得調用方法對象。

你得到的那個類就是你想要的對象,因為不可能得到數據類型的,你得到的就是那個類的一個實例,也就是正在調用那個方法的對象。

『陸』 java獲得是哪個方法調用當前的方法

// 獲得當前類名
String clazz = Thread.currentThread() .getStackTrace()[1].getClassName();
// 獲得當前方法名
String method = Thread.currentThread() .getStackTrace()[1].getMethodName();
System.out.println("class name: " + clazz + " Method Name " + method);

『柒』 Java中,怎麼在一個方法裡面獲得調用此方法的對象

如果是調用自己的成員函數,沒什麼條件。
如果調用的別的類中的成員函數,如果是該函數是非靜態,需要先生成該類的對象再調用。

『捌』 java怎麼調用方法

java類有兩種方法一種是類方法就是用static修飾的,一種是實例方法,就是沒有static修飾的方法。類方法可以同時類名.方法名的方式調用。而實例方法必須先生存類的實例在通過實例.方法名的方式調用。例如: public class MethodCall {     public static void main(String[] args)     {         Test.sayStatic();         Test test = new Test();         test.sayInstance();     } } class Test {     public static void sayStatic()     {         System.out.println("這是一個靜態方法。");     }     public void sayInstance()     {         System.out.println("這是一個實例方法。");     }

『玖』 java asm label獲取調用方法

通過反射調用。
java動態代理是利用反射機制生成一個實現代理介面的匿名類,在調用具體方法前調用InvokeHandler來處理。而cglib動態代理是利用asm開源包,對代理對象類的class文件載入進來,通過修改其位元組碼生成子類來處理。
ASM 是一個 Java 位元組碼操控框架,它能被用來動態生成類或者增強既有類的功能,ASM 可以直接產生二進制 class 文件,也可以在類被載入入 Java 虛擬機之前動態改變類行為。

閱讀全文

與java獲取方法調用相關的資料

熱點內容
程序員眼中的道德 瀏覽:505
文件解壓後亂碼是什麼原因 瀏覽:730
php路徑轉換 瀏覽:188
php中flag 瀏覽:182
當程序員要做什麼准備 瀏覽:284
pinctrllinux 瀏覽:901
lzw壓縮工具 瀏覽:864
luae加密插件破解版 瀏覽:141
Python求導數和程序 瀏覽:223
太原java程序員 瀏覽:361
picfile是什麼文件夾 瀏覽:292
12乘12國外的演算法 瀏覽:182
籌碼尺指標公式源碼 瀏覽:534
如何在瀏覽器訪問阿里雲伺服器 瀏覽:538
火的企業文件加密 瀏覽:463
支付寶app如何重新注冊 瀏覽:520
現在的伺服器版本是什麼 瀏覽:192
電阻在單片機 瀏覽:502
怎樣導出源碼 瀏覽:899
extjs文件上傳java 瀏覽:695