Java 类不能转换为字符串

Java 类不能转换为字符串,java,Java,标题听起来很愚蠢,但请听我说完 我正试图编写一个程序来创建一辆汽车(品牌、型号、生产年份和里程表),当我试图将一辆汽车添加到列表数组时,我得到以下错误: “不兼容的类型:无法将汽车转换为字符串” 有人知道解决这个问题的方法吗 任何帮助都将不胜感激,我的代码如下(此外,我无法删除程序的ArrayList方面) 公车{ 扫描仪扫描=新扫描仪(System.in); ArrayList cars=新的ArrayList(); 线品牌、型号、年份、里程表; int-ptr=0; 公共汽车(串年、串里程表

标题听起来很愚蠢,但请听我说完

我正试图编写一个程序来创建一辆汽车(品牌、型号、生产年份和里程表),当我试图将一辆汽车添加到列表数组时,我得到以下错误:

“不兼容的类型:无法将汽车转换为字符串”

有人知道解决这个问题的方法吗

任何帮助都将不胜感激,我的代码如下(此外,我无法删除程序的ArrayList方面

公车{
扫描仪扫描=新扫描仪(System.in);
ArrayList cars=新的ArrayList();
线品牌、型号、年份、里程表;
int-ptr=0;
公共汽车(串年、串里程表、串品牌、串型号)
{ 
make=make;
this.model=模型;
今年=年;
这个。里程表=里程表;
} 
公共字符串toString()
{ 
返回this.make+“”+this.model+“”+this.year+“”+this.里程表;
} 
公屋{
System.out.println(“这辆车是什么牌子的?”);
字符串newMake=scan.next();
System.out.println(“汽车的型号是什么?”);
字符串newModel=scan.next();
System.out.println(“这辆车是哪一年生产的?”);
字符串newYear=scan.next();
System.out.println(“这辆车走了多远?”);
字符串newOdometer=scan.next();
添加(新车(新品牌、新车型、新年份、新里程计));
}
}

您应该填写汽车列表,而不是字符串:

List<Car> cars = new ArrayList<>();
您通常不会这样做,因为通过调用
Car#toString
可以轻松获取
Car
的字符串版本。使用流,您可以尝试:

List<Car> cars = new ArrayList<>();
// populate list
List<String> carStrings = cars.stream()
    .map(c -> c.toString())
    .collect(Collectors.toList());
List cars=new ArrayList();
//填充列表
List carStrings=cars.stream()
.map(c->c.toString())
.collect(Collectors.toList());
声明

ArrayList<String> cars = new ArrayList<String>();
ArrayList cars=new ArrayList();
创建字符串列表而不是汽车列表。为此,您必须使用:

ArrayList<Car> cars = new ArrayList<>()
ArrayList cars=new ArrayList()

Simple,更改
ArrayList cars=new ArrayList()
to
ArrayList cars=new ArrayList()。当您要向其中添加汽车对象时,创建字符串列表毫无意义。为什么您的
Car
类包含汽车的
list
?将
车辆
与输入(和存储车辆列表)的逻辑分开。然后决定你是想要一份汽车清单还是一份汽车名称清单。@装满鳗鱼的气垫船谢谢你的帮助,很高兴它帮了你。您可能希望删除该问题,因为它帮助了您,但可能不会帮助未来的访问者,并且可能会吸引更多的人-votes@HovercraftFullOfEels
可能会吸引反对票
。。。似乎为时已晚:-(
ArrayList<String> cars = new ArrayList<String>();
ArrayList<Car> cars = new ArrayList<>()