现在我有
private static void getMethods(Class<? extends Object> clazz) {
Method[] declaredMethods = clazz.getDeclaredMethods();
for (Method aMethod : declaredMethods) {
aMethod.setAccessible(true);
// Print the declaration
System.out.print(Modifier.toString(aMethod.getModifiers()) + " "
+ aMethod.getReturnType().getSimpleName() + " " + aMethod.getName());
// Get Parameter Types
getParameters(aMethod);
//Empty Body
System.out.println("{}\n");
}
}
它反射性地打印大多数信息,但会创建一个空的正文。如何增加Java的反射性来打印方法主体?
如何增加Java的反射性来打印方法主体?
恐怕很难。
首先,原始源代码很可能对正在运行的程序不可用。通常,开发人员不要在二进制JAR中包含源代码。(即使这样做,也不能保证它们将成为“真实”来源。)
通常,您可以通过将类的FQN转换为字节码文件并使用类classloader将文件作为资源流加载来获取类的字节码。但是不能保证以此方式获得的字节码将与加载的字节码相同。(出于各种原因,一些类加载器会弄乱字节码。)
假设你 可以
得到真正的字节码,最后一步将是要么显示他们生的,或分解或反他们更具可读性。您应该能够进行javap
反汇编,但是反编译将需要使用第三方产品。当然,反编译后的代码看起来将与原始代码明显不同,并且如果字节码被混淆了,它们的源代码将几乎无法读取。
我应该如何将它打印到我的控制台,并使它显示我在方法中声明的数组? 当我试图打印它时,就像: 不管用,那我该怎么做呢? 我只是想知道如何在我的控制台打印它。
好吧所以我有三节课 " " '' 我正在尝试做的是创建一个新类来产生以下输出: 我是一个蓝色矩形,宽 20 高,高 10。我是一个半径为30的红色圆圈。我是一个绿色矩形,宽 25 宽,25 高,但我在调用方法 draw() 时遇到问题;
问题内容: 这是我的数组代码,我需要反向打印。 问题答案: 只需反转for循环的方向即可。现在,它从0到长度开始计数,从长度到0开始计数
我想按相反的顺序打印stackx,怎么做?谢谢你..
testdate.java:
我正在做我的编程课介绍的作业,这是一个泡泡排序。代码可能有缺陷,但我不是在找人来解决那个问题。我的问题是,我试图打印它。我得到的条件是,该方法必须由“public static void sort(int[]array)”一行的void方法定义。因此,如果我尝试导入数组,并在main方法中使用,它将无法工作,因为我会得到一个编译器错误,说明void不适用。如果我试图将它放到main方法的循环中,它