模拟反编译,输出一个类的构造方法
程序员文章站
2024-03-13 12:06:09
...
模拟反编译,输出一个类的构造方法:
测试代码:
package reflect;
import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
public class Test14 {
public static void main(String[] args) {
// 反射获取一个类
Class theClass = null;
try {
theClass = Class.forName("java.lang.String");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 创建字符串连接对象
StringBuilder s = new StringBuilder();
// 追加类名及修饰符列表
s.append(Modifier.toString(theClass.getModifiers()) + " ");
s.append(theClass.getSimpleName() + " {\n");
// 获取构造方法
Constructor[] constructors = theClass.getDeclaredConstructors();
// 遍历构造方法
for (Constructor c : constructors) {
// 样例:public String(byte[], int, int) { }
s.append("\t"); // 制表符
String modStr = Modifier.toString(c.getModifiers()); // 修饰符列表
if (!modStr.isEmpty()) s.append( modStr + " ");
s.append(theClass.getSimpleName() + " ("); // 类名
// 获取形式参数列表
Class[] parTypes = c.getParameterTypes();
for (Class p : parTypes) {
s.append(p.getSimpleName() + ", ");
}
if (parTypes.length > 0) {
s.deleteCharAt(s.length() - 1); // 删除空格
s.deleteCharAt(s.length() - 1); // 删除逗号
}
s.append(") { }\n");
}
s.append("}");
System.out.println(s);
}
}
运行截图:
下一篇: php实现基于PDO的预处理示例
推荐阅读
-
模拟反编译,输出一个类的所有属性
-
反编译一个类的方法
-
模拟反编译,输出一个类的构造方法
-
设计一个类Student: (1)属性包括姓名、学号和成绩 (2)方法,按照成绩从高到低的顺序输出姓名、学号和成绩信息。 编写测试类运行上面的方法。
-
JavaScript中利用构造器函数模拟类的方法
-
PHP中一个文件调用另一个文件类的方法,然后输出出现乱码,求解!该如何处理
-
JavaScript中利用构造器函数模拟类的方法
-
设计静态方法模拟一对骰子。也就是说,随机出现一对 1, 2, 3, 4, 5, 6 之间的一个数。要求显示第一个骰子上的数,再显示第二个骰子上的数,最后输出显示两个数之和。
-
模拟反编译,输出一个类的属性及方法
-
定义了一个类,在类中写了很多的方法对html代码进行拼接,怎么在页面中输出呢?