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

热点内容
压缩因子定义 浏览:968
cd命令进不了c盘怎么办 浏览:214
药业公司招程序员吗 浏览:974
毛选pdf 浏览:659
linuxexecl函数 浏览:727
程序员异地恋结果 浏览:374
剖切的命令 浏览:229
干什么可以赚钱开我的世界服务器 浏览:290
php备案号 浏览:990
php视频水印 浏览:167
怎么追程序员的女生 浏览:487
空调外压缩机电容 浏览:79
怎么将安卓变成win 浏览:459
手机文件管理在哪儿新建文件夹 浏览:724
加密ts视频怎么合并 浏览:775
php如何写app接口 浏览:804
宇宙的琴弦pdf 浏览:396
js项目提成计算器程序员 浏览:944
pdf光子 浏览:834
自拍软件文件夹名称大全 浏览:328