请教(100分)

  • 主题发起人 主题发起人 hyzou
  • 开始时间 开始时间
H

hyzou

Unregistered / Unconfirmed
GUEST, unregistred user!
class TheClass
{
method theMethod()
{
registerToOtherClass("TheClass","theMethod()");
}
}
目的是向其它类注册自己的信息,包括类名和方法名。
现在类名和方法名是用字符串直接写出的,请问如何用一些函数来代替(取得)?
 
obj.getClass().getName();
//Get the class name,
obj.getClass().getDeclaredMethod(...).getName();
//Get the method name.
obj should be a refrence to a class.
 
obj.getClass().getDeclaredMethod(...).getName();
//Get the method name.
这里面最终还是要在参数中写上method的字符串,有没有更好的方法?
 
将需要动态设置的参数保存到mydata.txt中,将mydata.txt和类放在同一个目录下,
动态读取;
  String record = null;
String method_name;
  try {
FileReader fr = new FileReader("mydata.txt");
    BufferedReader br = new BufferedReader(fr);
    record = new String();
    while ((record = br.readLine()) != null) {
if (record.equalsIgnoreCase("methodname")){
method_name = br.readLine();
}
     System.out.println(recCount + ": " + record);
}
br.close();
fr.close();
   } catch (IOException e) {
     System.out.println("Uh oh, got an IOException error!");
     e.printStackTrace();
   }
 
还是一样的,需要自己来写这个字符串
 
反正你改类名和方法名称的时候也要修改源码后重新编译
 
我的目的就是不想手写这些字符串,而用函数取得的变量来代替啊
这样就没有编译的问题。而且是通用的
 
可是你如果的类名变化的时候,你是一定要重新手工编辑类名的呀!!
getMethodName,getClassName这两个可能是你需要的
 
getClass.getClassName可以
但getMethodName达不到我的目的
 
我估计java包里没有提供现成的方法可以达到我的目的,但我想至少可以写一个东西来实现。
因为在异常的信息里,都是包含了方法的信息的
 
java在调用方法的时候,会把这个方法压入stack记录,并在stack上创建局部变量。
用exception.printStackTrace()的时候,实际上使用JNI来读stack的信息并显示。
用C当然是没问题了,可是你用java怎么读内存的信息呢?
如果java能提供getMethod()函数的话(实现起来并不困难),你或许还有救。
 
我查了一下,JotMethodCall这个接口好像没有类实现它,所以没有想到好办法来获取方法
 
多人接受答案了。
 
后退
顶部