gpt4 book ai didi

java - 以编程方式提取方法的内容

转载 作者:行者123 更新时间:2023-12-01 22:29:13 25 4
gpt4 key购买 nike

例如,如果我有一个如下所示的Example.java文件

Class Example{
int a;
int b;
void helloworld(){
System.out.println("HelloWorld");
}
void hello(){
System.out.println("HelloWorld");
}

如何以编程方式获取函数 helloWorld() 的内容作为字符串,例如

void helloworld(){
System.out.println("HelloWorld");
}

我的意思是它应该接受方法名称作为输入并将其内容作为字符串返回?

最佳答案

不可能获取方法体,因为它是字节码。这个问题很早以前就被问过,你可以在 How do I print the method body reflectively? 找到答案。

您最多可以获得方法签名,如下例所示。

import java.lang.reflect.Method;

public class reflectionexample {

public static void main(String[] args) {

try {
Class c = TestMe.class;
Object t = c.newInstance();
Method[] allMethods = c.getDeclaredMethods();
for (Method method : allMethods) {
System.out.println(method.toGenericString());
}

} catch (Exception e) {
e.printStackTrace();
}
}
}


class TestMe {

void extractMePlease(String justLikeThat) {
System.out.println("is it working?");
}
}

输出

void compareInt.TestMe.extractMePlease(java.lang.String)

希望对你有帮助!

关于java - 以编程方式提取方法的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58555964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com