我想写个java解析另一个java源文件,来快速显示其中所有的方法名和方法对应的参数名。
我是菜鸟,诸位大神如果觉得要求太高或者我太菜不要骂我。举个例子吧,我有个算加减的例子packagecom.test;publicclassCal{/***@paramar...
我是菜鸟,诸位大神如果觉得要求太高或者我太菜不要骂我。
举个例子吧,我有个算加减的例子
package com.test;
public class Cal {
/**
* @param args
*/
public int add(int a, int b)
{
return a+b;
}
private int minus(int a, int b)
{
return a-b;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int arga = 1;
int argb = 2;
Cal cal = new Cal();
cal.add(arga, argb);
cal.minus(arga, argb);
System.out.print(cal.add(arga, argb));
System.out.print(cal.minus(arga, argb));
}
}
我想快速知道Cal类中的方法(add,minus,main)及参数(比如add对应的是a和b)。并在另一个java文件中输出。网上都说用反射,但好像和我的情况有点不同,我也不知道怎么搞比较合适,还请大神点拨一下,能有可执行的文件更好。我还有分。谢谢!
3楼说的对,我要的的确不是参数名,是3楼说的参数类型。不过我按照3楼做的输出了很多wait,tostring的method名,是隐藏的方法名吗? 展开
举个例子吧,我有个算加减的例子
package com.test;
public class Cal {
/**
* @param args
*/
public int add(int a, int b)
{
return a+b;
}
private int minus(int a, int b)
{
return a-b;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int arga = 1;
int argb = 2;
Cal cal = new Cal();
cal.add(arga, argb);
cal.minus(arga, argb);
System.out.print(cal.add(arga, argb));
System.out.print(cal.minus(arga, argb));
}
}
我想快速知道Cal类中的方法(add,minus,main)及参数(比如add对应的是a和b)。并在另一个java文件中输出。网上都说用反射,但好像和我的情况有点不同,我也不知道怎么搞比较合适,还请大神点拨一下,能有可执行的文件更好。我还有分。谢谢!
3楼说的对,我要的的确不是参数名,是3楼说的参数类型。不过我按照3楼做的输出了很多wait,tostring的method名,是隐藏的方法名吗? 展开
展开全部
查看类的方法 结构 用反射啦
我以前也写过一个这样的程序 模仿一下反编译
主要用的方法是
Class c=Class.forName(str);
int m=c.getModifiers();
//类标题
boolean class_=false;
if(Modifier.isInterface(m))
{
if(Modifier.isPublic(m))
cla.append("public ");
cla.append("interface ");
}
else
{
class_=true;
if(Modifier.isPublic(m))
cla.append("public ");
if(Modifier.isFinal(m))
cla.append("final ");
if(Modifier.isAbstract(m))
cla.append("abstract ");
cla.append("class ");
}
展开全部
Class<?> clazz = Class.forName("com.test.Cal");
for (Method method : clazz.getMethods()) {
System.out.print("Method: "+method.getName());
for(Class<?> paramClass : method.getParameterTypes()){
System.out.print("\t"+paramClass.getName()+", ");
}
System.out.println();
}
以上大概就是你要的答案,只能得到参数类型,毕竟,形参名实际上是没什么用的
for (Method method : clazz.getMethods()) {
System.out.print("Method: "+method.getName());
for(Class<?> paramClass : method.getParameterTypes()){
System.out.print("\t"+paramClass.getName()+", ");
}
System.out.println();
}
以上大概就是你要的答案,只能得到参数类型,毕竟,形参名实际上是没什么用的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
javap Cal
用这个命令就可以输出所有的方法及参数
用这个命令就可以输出所有的方法及参数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就把.java文件当文本文档一样解析。找所有(?){?}之前的字符串试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
wait()方法是Object类的方法,每个类都继承Object类,那么就都有wait()方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询