gpt4 book ai didi

Java构造函数找不到符号错误 ' = new'

转载 作者:行者123 更新时间:2023-12-02 05:13:43 24 4
gpt4 key购买 nike

我正在尝试从另一个类的条件中初始化一个 Java 类 - 我希望 MarsRovers 初始化 Rover。当我尝试从 MarsRovers 初始化 Rover 对象时,出现“找不到符号”错误。我是Java新手,所以我感觉它与plateauCoords和inputLines的范围有关。我尝试过在这里看到的其他解决方案,但它们无法解决我的问题(例如公开我的变量)。

目标是最终创建一个新的 Rover,只要 inputLines % 2 等于 0(使用直到循环)。

这是 MarsRover 代码:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

public class MarsRover {
public static void main(String []args) throws FileNotFoundException {
Scanner console = new Scanner(System.in);
System.out.println("Mars rover is ready for input, please enter name of input file: ");
String filename = console.nextLine();
console.close();
List<String> inputLines = new ArrayList<String>();

Scanner scanner = new Scanner(new File(filename));
scanner.useDelimiter("\n");
while(scanner.hasNext()){
inputLines.add(scanner.next());
}
String plateauCoords = inputLines.get(0);
inputLines.remove(0);
scanner.close();
System.out.println(inputLines);

if(inputLines.size() % 2 == 0) {
MarsRover rover = new Rover(plateauCoords, inputLines);
} else {
System.out.println("Your directions are not formatted correctly");
}
}
}

这是 Rover 代码:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

public class Rover {
public Rover(String platCoords, String[] input) {
System.out.println("INSIDE ROVER");
}
}

当我编译 MarsRovers.java 时,出现此错误:

MarsRover.java:27: cannot find symbol
symbol : constructor Rover(java.lang.String,java.util.List<java.lang.String>)
location: class Rover
MarsRover rover = new Rover(plateauCoords, inputLines);
^
1 error

最佳答案

定义的 Rover 构造函数采用字符串数组。您正在尝试使用字符串列表调用构造函数。字符串列表与字符串数组不同。例如,您可以通过将列表转换为字符串数组来修复它。

Rover rover = new Rover(plateauCoords, inputLines.toArray(new String[inputLines.size()]));

另外请注意,您不能将 Rover 类型的对象分配给 MarsRover 类型的变量,因为(根据定义)它们是完全不同的类型。

关于Java构造函数找不到符号错误 ' = new',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27139409/

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