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中有没有一种方法可以判断一个方法形参列表是否为空呢?
展开
 我来答
百度网友b0dcff2
推荐于2018-03-22 · TA获得超过116个赞
知道答主
回答量:80
采纳率:100%
帮助的人:48.1万
展开全部

可以通过Method这个类来判断:


    Class<?>[] value = method.getParameterTypes();
    System.out.println(value.length);

如果这个method方法有参数,那么这个value数组长度不会为0,存储的是method方法的参数;

如果没有参数,则value数组为空。

百度网友eeb8c26
推荐于2016-06-02 · TA获得超过482个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:217万
展开全部
如下所示:
Method[] methods = String.class.getMethods();
Method method = methods[0];
boolean value = method.isVarArgs();
如果value返回真,则表示该方法有参数,否则没有参数。
追问
method.isVarArgs(): 如果将此方法声明为带有可变数量的参数,则返回 true;否则,返回 false。所以,这只能判断方法里面是否有可变参数,而不是判断参数列表是否为空。
追答
那就用这个了,method.getGenericParameterTypes(),如果返回的数组为空,就是空参数。这个你可能要结合Method类中的几个方法联合起来用,才能达到你的目的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ade0990
2012-08-06
知道答主
回答量:66
采纳率:0%
帮助的人:34万
展开全部
你在B类里面写Class.forName("A");这就是反射机制A就是A类了!具体有没有带参数的方法就看JAVA api文档了! 100%有的!看反射哪块就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_yeegao
2015-10-07 · 超过12用户采纳过TA的回答
知道答主
回答量:53
采纳率:100%
帮助的人:15.9万
展开全部
method.getParameterTypes()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
568145421
2012-08-06 · 知道合伙人软件行家
568145421
知道合伙人软件行家
采纳数:1353 获赞数:6756

向TA提问 私信TA
展开全部
您好,当然有。
您可以学习一下Java的反射机制。这样就可以判断了。
追问
反射机制我刚学的,但是我没在api里面找到这样的方法
追答
是这样的,当你通过反射取得方法名的时候,就可以直接调用了,它用了可变参数来保存参数类似invoke(Object obj, Object... args)这样的。所以不需要确定参数个数,直接按照你的需求往上添即可。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式