我正在做 Java APT 并想解析一个方法(一个ExecutableElement
)。现在我需要方法的返回类型。我不知道如何获取类型,如果它是一个数组。
例子:String[] foobar()
我想得到类型String
。
从 ExecutableElement 实例中,我可以将返回类型作为 TypeMirror 的实例(使用getReturnType()
)。但如果它是一个数组,我无法获得“真实类型”(在我的例子中:)String
。
我试过了:
System.out.println("TEST: " + pReturnType.toString());
System.out.println("TEST2: " + pReturnType.getClass().getName());
System.out.println("TEST3: " + pReturnType.getClass().getEnclosingClass());
System.out.println("TEST4: " + pReturnType.getClass().getComponentType());
System.out.println("TEST5: " + pReturnType.getKind());
这给了我:
TEST: java.lang.String[]
TEST2: com.sun.tools.javac.code.Type$ArrayType
TEST3: class com.sun.tools.javac.code.Type
TEST4: null
TEST5: ARRAY
我想要一个 , 的实例java.lang.Class
(java.lang.String
在我的例子中)。