检查 ExecutableElement 的返回类型是 Collection 的子类型

我有一个ExecutableElement代表吸气剂的例子,下面是一个例子。

public List<String> getStrings();

允许我获取返回类型详细信息的唯一方法是ExecutableElement.getReturnType()。它给了我一个TypeMirror。

我找不到任何可以让我检查TypeMirror返回是否是Collection的子类型的内容。我可以做什么来验证这一点?我正在尝试生成源代码来调用Collection中的方法之一。



汪汪一只猫
浏览 86回答 1
1回答

千万里不及你

你可以看看 org.netbeans.modules.java.hints.jdk.mapreduce.PreconditionsCheckerprivate boolean isIterbale(ExpressionTree expression) {    TypeMirror tm = workingCopy.getTrees().getTypeMirror(TreePath.getPath(workingCopy.getCompilationUnit(), expression));    if (!Utilities.isValidType(tm)) {        return false;    }    if (tm.getKind() == TypeKind.ARRAY) {        return false;    } else {        tm = workingCopy.getTypes().erasure(tm);        TypeElement typeEl = workingCopy.getElements().getTypeElement("java.util.Collection");        if (typeEl != null) {            TypeMirror collection = typeEl.asType();            collection = workingCopy.getTypes().erasure(collection);            if (this.workingCopy.getTypes().isSubtype(tm, collection)) {                return true;            }        }    }    return false;}先决条件检查器
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java