我有三种方法。一个从文件中读取并将每一行添加到列表中作为对象。另一个要求换行并将其删除。这部分很好。
然而,这是为了分配它要求打印被删除的行。这是我遇到麻烦的地方。现在我的方法是删除一行我有这个:
Trees objToRemove = list.get(number);
System.out.println("Removing: " + objToRemove);
我正在尝试从指定位置(数字)的列表中获取对象。
我收到此错误
不兼容的类型:无法将对象转换为树。
树木是,
Trees tree = new Trees (name, height, diameter);
位于提到的第一个方法中。
我的问题是,如果在另一个方法中定义了对象,我该如何访问该对象?另外,我目前做错了什么?
修改:已更改为
Trees objToRemove = (Trees) list.get(number);
它有效!
谢谢。
答案 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
,第二种返回特定类型