错误:不兼容的类型:对象无法转换为树

时间:2016-03-16 04:59:33

标签: java linked-list removeclass

我有三种方法。一个从文件中读取并将每一行添加到列表中作为对象。另一个要求换行并将其删除。这部分很好。

然而,这是为了分配它要求打印被删除的行。这是我遇到麻烦的地方。现在我的方法是删除一行我有这个:

Trees objToRemove = list.get(number);
System.out.println("Removing: " + objToRemove);

我正在尝试从指定位置(数字)的列表中获取对象。

我收到此错误

  

不兼容的类型:无法将对象转换为树。

树木是,

Trees tree = new Trees (name, height, diameter);

位于提到的第一个方法中。

我的问题是,如果在另一个方法中定义了对象,我该如何访问该对象?另外,我目前做错了什么?

修改:已更改为

  Trees objToRemove = (Trees) list.get(number);

它有效!

谢谢。

3 个答案:

答案 0 :(得分:2)

  

您的$.ajax({ method: "POST", url: "some.php", data: { name: "John", location: "Boston" } }) .done(function( ajaxresponse ) { do{ //operations }while(ajaxresponse.length == <some number> ); }); 类不是类型安全的。因此,默认情况下ArrayList将为您提供get(int index)类的对象。

Object

代替

Trees objToRemove = (Trees) list.get(number); //try this

或将您的 Trees objToRemove = (Trees) list.get(number); 对象更改为类型保护,以便无法将其他类型的元素添加到list

List

此处有各种其他原因,请查看Why Use Generics

答案 1 :(得分:0)

Trees objToRemove = list.get(number);

您正在将对象分配给不兼容的Trees类。你需要施展它。

Trees objToRemove = (Trees) list.get(number);

答案 2 :(得分:0)

实例化列表时,不要使用:

List list = new ArrayList<Trees>();

将文字放置在另一侧,如下所示:

List<Trees> list = new ArrayList();

第一种方法返回Object,第二种返回特定类型