[英]How to save class method in database?
是否可以读取 java 类的所有方法并将它们的名称保存在数据库中?
@Entity
public class Action {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
public Action() {
}
public String methodA() {
return "methodA";
}
public String methodB() {
return "methodB";
}
}
使用 Java 反射:
Method[] methods = Action.class.getDeclaredMethods();
for (int i = 0; i < methods.length; i++) {
saveToDB(methods[i].toString());
}
您可以使用java.lang.Class.getDeclaredMethods()
方法,该方法返回Method
对象数组,包括公共、受保护、默认(包)访问和私有方法,但不包括继承的方法。
Action cls = new Action ();
Class c = cls.getClass();
Method[] methods = c.getDeclaredMethods();
for(int i = 0; i < methods.length; i++) {
System.out.println(methods[i].toString());
}
你的输出将是这样的:
公共 java.lang.String methodA()
public java.lang.String methodB()
如果只想存储方法的名称,可以使用getName()
方法。 所以如果你这样做:
for(int i = 0; i < methods.length; i++) {
System.out.println(methods[i].toString());
}
你得到这个输出:
方法A
方法B
您也可以使用 javassist 在运行时获取所有方法。 即使您不了解类结构。
ClassPool pool = ClassPool.getDefault();
CtClass cc = pool.get("class Name");
CtMethod[] methods=cc.getDeclaredMethods();
for(CtMethod method:methods){
System.out.println(method.toString());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.