gpt4 book ai didi

java - 当我尝试构建 MatJuice 时出现 2 个编译错误(找不到符号和不兼容的类型)

转载 作者:行者123 更新时间:2023-11-30 05:45:08 25 4
gpt4 key购买 nike

我刚刚找到这个工具,MatJuice ,这可以节省我几天甚至几周的开发时间,但它无法编译。

虽然我对Java一无所知,但它看起来并不那么毛茸茸:两个错误都位于同一个文件、同一个函数中,而且功能看起来很通用(findParent),所以可能是Java程序员会立即知道它是关于什么的。

已发布一个重大问题 here一年多前,作者似乎不愿意纠正它。这就是我在这里问的原因。

以下是两个错误:

[javac] /home/geoffrey/mclab-core/languages/Natlab/src/natlab/utils/NodeFinder.java:62: error: cannot find symbol
[javac] .filter(n -> clazz.isInstance(n) || n.getParent() == null)
[javac] ^
[javac] symbol: method getParent()
[javac] location: variable n of type Object

[javac] /home/geoffrey/mclab-core/languages/Natlab/src/natlab/utils/NodeFinder.java:66: error: incompatible types: Object cannot be converted to T
[javac] .orElse(null);
[javac] ^
[javac] where T is a type-variable:
[javac] T extends Object declared in method <T>findParent(Class<T>,ASTNode<?>)

波纹管是相关的代码段(错误发生在本摘录的第 3 行和第 7 行)

public static <T> T findParent(Class<T> clazz, ASTNode<?> node) {
return Stream.iterate(node, ASTNode::getParent)
.filter(n -> clazz.isInstance(n) || n.getParent() == null)
.findFirst()
.filter(clazz::isInstance)
.map(clazz::cast)
.orElse(null);
}

完整文件为here (文件中有有用的注释)以及存储库的其余部分。

我尝试自己尝试一下,但由于对 Java 的了解为零,它对我来说太抽象了,无法调试。

最佳答案

这些错误的出现是因为编译器不知道ast.ASTNode是什么。项目中没有这样的类。但是 ant 构建文件中有 Natlab.gen 目标:

mclab-core/languages/Natlab/build.xml

尝试运行Natlab.gen目标,目录gen(包含必要的包ast.ASTNode)将在内生成>Natlab 目录。这应该可以修复编译错误。

关于java - 当我尝试构建 MatJuice 时出现 2 个编译错误(找不到符号和不兼容的类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54991781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com