导航:首页 > 编程语言 > 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获取方法调用相关的资料

热点内容
c编译的中文怎么写 浏览:91
单片机连接蜂鸣器电路 浏览:844
程序员买房前后对比照 浏览:988
cmdjava中文乱码 浏览:947
窗口app哪个好 浏览:731
xzforandroid 浏览:577
程序员那么可爱歌曲完整版 浏览:906
为什么购买pdf 浏览:45
操作系统代码编译 浏览:483
程序员东北大学 浏览:426
编译忽略空字符 浏览:117
多店铺阿里云服务器教程 浏览:378
单片机求初值 浏览:420
安卓机如何在电脑备份图片 浏览:925
ca证书加密机价格 浏览:798
天干地支年份算法 浏览:797
程序员打造的视频 浏览:7
java和php通信 浏览:680
为什么黑程序员 浏览:165
程序员男生 浏览:457