为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

汪汪一只猫 2023-07-13 15:56:00
我有一个ExecutableElement代表吸气剂的例子,下面是一个例子。public List<String> getStrings();允许我获取返回类型详细信息的唯一方法是ExecutableElement.getReturnType()。它给了我一个TypeMirror。我找不到任何可以让我检查TypeMirror返回是否是Collection的子类型的内容。我可以做什么来验证这一点?我正在尝试生成源代码来调用Collection中的方法之一。
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

你可以看看 org.netbeans.modules.java.hints.jdk.mapreduce.PreconditionsChecker


private 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;

}

先决条件检查器


查看完整回答
反对 回复 2023-07-13
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信