Java,找不到符号,无法从arraylist提取数据类型
但是我得到了一个不兼容的类型错误。当仅仅使用代码时Java,找不到符号,无法从arraylist提取数据类型,java,arraylist,Java,Arraylist,但是我得到了一个不兼容的类型错误。当仅仅使用代码时 Packet thisShipment = shipmentList.get(i); 在displayLightPackages方法中,我得到一个错误,编译器无法找到符号isLight。我怀疑这个错误与arraylist中的数据类型有关,但除此之外,我在这一点上不知所措 谢谢你你的ArrayList没有被输入,所以所有来自它的东西都是对象。相反,Object没有isLight()方法,因此出现“找不到符号”错误 要解决此问题,请键入Array
Packet thisShipment = shipmentList.get(i);
在displayLightPackages方法中,我得到一个错误,编译器无法找到符号isLight。我怀疑这个错误与arraylist中的数据类型有关,但除此之外,我在这一点上不知所措
谢谢你你的
ArrayList
没有被输入,所以所有来自它的东西都是对象
。相反,Object
没有isLight()
方法,因此出现“找不到符号”错误
要解决此问题,请键入ArrayList
shipmentList.get(i).isLight()
在这两个选项中,键入
ArrayList
更简单、更安全,因为您不必记得每次从中获取值时都进行强制转换。您的ArrayList
没有被键入,因此来自它的所有内容都是对象。相反,Object
没有isLight()
方法,因此出现“找不到符号”错误
要解决此问题,请键入ArrayList
shipmentList.get(i).isLight()
在这两个选项中,键入ArrayList
更简单、更安全,因为您不必记得每次从中获取值时都要强制转换
private ArrayList shipmentList=new ArrayList()代码>
到
private ArrayList shipmentList=new ArrayList()代码>
编译器不知道shipmentList保存数据包。事实上,编译器知道shipmentList是一个对象列表。所以您可以执行shipmentList.get(i).toString()
,因为toString()
是来自对象类的方法。但是您不能在对象
上调用isLight()
方法,因为它在对象
上下文中不存在。您必须明确地说shipmentList是ArrayList
的类型,或者将元素强制转换为Packet:packetThisShipping=(Packet)shipmentList.get(i)代码>更改
private ArrayList shipmentList=new ArrayList()代码>
到
private ArrayList shipmentList=new ArrayList()代码>
编译器不知道shipmentList保存数据包。事实上,编译器知道shipmentList是一个对象列表。所以您可以执行shipmentList.get(i).toString()
,因为toString()
是来自对象类的方法。但是您不能在对象
上调用isLight()
方法,因为它在对象
上下文中不存在。您必须明确地说shipmentList是ArrayList
的类型,或者将元素强制转换为Packet:packetThisShipping=(Packet)shipmentList.get(i)代码>哇,谢谢你,伙计。彻底解决了我的问题,我学到了一些东西!再次感谢。哇,谢谢你。彻底解决了我的问题,我学到了一些东西!再次感谢。
shipmentList.get(i).isLight()
private ArrayList<Packet> shipmentList = new ArrayList<>();
((Packet)shipmentList.get(i)).isLight()