java中判断一个方法有没有参数
ClassA{publicvoidmethod(){System.out.println("method");}publicvoidmethod2(Stringstr){...
Class A
{
public void method()
{
System.out.println("method");
}
public void method2(String str)
{
System.out.println(str);
}
}
定义一个A类如上,现在在定义一个B类,要求调用A中不带参数的方法,但不能用 A a=new A();a.method()调用,相当于你并不知道A类中的什么方法不带参数,那java中有没有一种方法可以判断一个方法形参列表是否为空呢? 展开
{
public void method()
{
System.out.println("method");
}
public void method2(String str)
{
System.out.println(str);
}
}
定义一个A类如上,现在在定义一个B类,要求调用A中不带参数的方法,但不能用 A a=new A();a.method()调用,相当于你并不知道A类中的什么方法不带参数,那java中有没有一种方法可以判断一个方法形参列表是否为空呢? 展开
5个回答
展开全部
如下所示:
Method[] methods = String.class.getMethods();
Method method = methods[0];
boolean value = method.isVarArgs();
如果value返回真,则表示该方法有参数,否则没有参数。
Method[] methods = String.class.getMethods();
Method method = methods[0];
boolean value = method.isVarArgs();
如果value返回真,则表示该方法有参数,否则没有参数。
追问
method.isVarArgs(): 如果将此方法声明为带有可变数量的参数,则返回 true;否则,返回 false。所以,这只能判断方法里面是否有可变参数,而不是判断参数列表是否为空。
追答
那就用这个了,method.getGenericParameterTypes(),如果返回的数组为空,就是空参数。这个你可能要结合Method类中的几个方法联合起来用,才能达到你的目的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在B类里面写Class.forName("A");这就是反射机制A就是A类了!具体有没有带参数的方法就看JAVA api文档了! 100%有的!看反射哪块就行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
method.getParameterTypes()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
您好,当然有。
您可以学习一下Java的反射机制。这样就可以判断了。
您可以学习一下Java的反射机制。这样就可以判断了。
追问
反射机制我刚学的,但是我没在api里面找到这样的方法
追答
是这样的,当你通过反射取得方法名的时候,就可以直接调用了,它用了可变参数来保存参数类似invoke(Object obj, Object... args)这样的。所以不需要确定参数个数,直接按照你的需求往上添即可。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询