小心使用Eclipse jdt.core.IMethod的getParameterNames方法

使用org.eclipse.jdt.core.IMethod的getParameterNames方法获取方法参数时,当调用到有参数的方法时,第一次调用没有问题,第二次就不能正常工作了:

Java Model Exception: Java Model Status [VerifyCardNo(short) [in CardVerify [in CardVerify.java [in validation_lib [in src [in example]]]]] does not exist]
at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:495)
at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:529)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:255)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:241)

这应该是JDT的一个bug吧,不过可以使用getParameters方法绕过去,它的返回类型为ILocalVariable[],

然后使用ILocalVariable的getElementName获得参数名,使用getTypeSignature方法获得参数类型,不过该参数类型不是Java类型,比如String->QString; ,可以使用Signature.toString方法进行转换。

 

转载于:https://www.cnblogs.com/vwpolo/archive/2012/05/06/2486517.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值