方法签名的Java语法

时间:2013-12-26 08:53:27

标签: java grammar

我正在开展一个要求用户输入方法签名的项目。我的代码采用了该签名并对其执行了一些操作。

但是为了能够对它做一些事情,我需要将方法签名分解为碎片,并将这些碎片存储在相关变量中,如modifiers,methodReturnType,methodName,paramModifiers,paramType,paramName,exception。

为实现这一目标,我手动将逻辑放在我的代码中。另外,我使用HashMap作为修饰符,使用TreeSet作为异常。现在,方法签名可以有很多种方式。所以我的疑问/怀疑是:

  1. 我认为java内部应该有更好的方法来实现这一点。因为编译器理解Java的语法......或者类java.lang.reflect.Method中的一些我无法弄清楚的东西......必须有某种方式。有人知道吗?
  2. 我欢迎任何有关改善现有逻辑的建议......我是否应该更喜欢其他收藏......或其他任何方式......任何事情。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

您可以使用此代码实现此目的,它将循环遍历classe的所有方法并尝试打印它们,打印它们的修饰符:

Class<?> c = Class.forName(SomeClass.class);
Method[] allMethods = c.getDeclaredMethods();

for (Method m : allMethods) {
 out.format("%s%n", m.toGenericString());
 out.format("  Modifiers:  %s%n",Modifier.toString(m.getModifiers()));
}

看看这里,还有其他一些例子http://docs.oracle.com/javase/tutorial/reflect/member/method.html