gpt4 book ai didi

java - 未找到实际参数 "int"的适用构造函数/方法,但匹配候选确实存在

转载 作者:行者123 更新时间:2023-11-30 01:53:22 27 4
gpt4 key购买 nike

我想在 Spark-SQL 生成的 java 代码中添加一些代码。因此,我创建一个包含“Employee”类的 jar 文件,并在文件中手动插入“Employee e = new Employee(some integer)”:sql/core/src/main/scala/org/apache/spark/sql/execution/WholeStageCodegenExec.scala。调用spark-shell时,我执行了“spark-shell --jars/path/to/myJar.jar”。但是,当我运行查询时,它报告以下错误:错误 CodeGenerator:编译失败:org.codehaus.commons.compiler.CompileException:文件“generated.java”,第 21 行,第 18 列:找不到实际参数“int”的适用构造函数/方法;候选者是:“Employee()”、“Employee(int)”、“Employee(java.lang.String)”

我在网上发现的大多数类似问题都是因为参数类型不匹配,但是,我确实有 Employee(int) 构造函数,正如你在这里看到的,为什么 Janino 仍然提示它?

我的员工示例非常简单:

public class Employee {
String name = "Default";
int age;
int ID;

Employee() {
System.out.println("Empty constructor");
}

Employee(String myName) {
name = myName;
}

Employee(int myAge) {
age = myAge;
}

void sayHi() {
System.out.println("Hello, I'm " + name);
}

void sayhello() {
System.out.println("Hello,test");
}
}

修改后的生成代码也很简单:

public void init(int index, scala.collection.Iterator[] inputs) {
String name = "Go";
int age = 30;
Employee e1 = new Employee(age);
e1.sayHi();

非常感谢您的帮助!!!

最佳答案

我不熟悉 Spark 代码生成器,但这是 Java 代码的一个问题。

Employee 类的所有构造函数都用 default access 声明。 ,因此无法从其他包访问它们。尝试使用 public 修饰符声明构造函数。

关于java - 未找到实际参数 "int"的适用构造函数/方法,但匹配候选确实存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55306311/

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