获取方法参数名称【觉得不可能的勿进】

七年 2009-03-31 07:19:46
基本上使用paranamer可以得到非abstract方法的参数名称,在参数列表中出现数组的情况也不能获取到。
已知:可以从debug information中提取。

我想问的问题是:
在class文件生成时,类似抽象方法的参数名被过滤了。


有过同样经历的朋友帮忙!
...全文
193 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodmrning 2009-04-06
  • 打赏
  • 举报
回复
用反射!
wxzyydy 2009-04-04
  • 打赏
  • 举报
回复
不可能!exin
七年 2009-04-03
  • 打赏
  • 举报
回复
我来说说你们不知道的:

如果以debug编译参数来编译java文件的时候,.class文件里面是有包含参数名称的,如果你只是单纯的使用javac没有任何参数的话就会做优化,.class里面没有参数名称。

其实我的问题是抽象的方法这种,在你用debug模式编译的时候依然不会把参数名存进.class里。


ZangXT 2009-04-01
  • 打赏
  • 举报
回复
不是觉得不可能的问题。
了解一下class文件格式,你会知道是根本不可能的问题。除非你自己提供冗余的field来保存参数名信息
luojihaidao 2009-04-01
  • 打赏
  • 举报
回复
public int getModifiers(); 这个方法LZ 可以看看!
luojihaidao 2009-04-01
  • 打赏
  • 举报
回复
public int getModifiers(); 这个方法LZ 可以看看!
yanhan0615 2009-04-01
  • 打赏
  • 举报
回复
呃,同意楼上的,知道类型既可,如果要知道参数名的话,我个人感觉光有.class是不够的,估计会配合.java文件,才能实现
yanhan0615 2009-04-01
  • 打赏
  • 举报
回复
呃,同意楼上的,知道类型既可,如果要知道参数名的话,我个人感觉光有.class是不够的,估计会配合.java文件,才能实现
yangqidong 2009-03-31
  • 打赏
  • 举报
回复
照理说抽象方法这么写就行了
public abstract void Foo(string);
之所以写成这样
public abstract void Foo(string str);
无非是为了符合语法,因为实际str不会用到,甚至子类重写的时候可以使用别的变量名,
所以class文件没有什么理由保存抽象方法的参数名

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧