【发布时间】:2016-01-01 12:48:27
【问题描述】:
假设我有 3 个不同的类(Class1、Class2、Class3),每个类都有一个名为“.update(String x)”的方法。
现在我想读取 .csv 文件中的一行,我用逗号分隔值并获得一个列表,其中每个字符串值被索引,例如 "Foo, bar, barz" 变为 {"foo", "bar" , "barz")。
是否可以在 Java 中创建一个对象列表(Obj1、Obj2、Obj3),每个类和我的字符串列表中的每个值一个,用我列表的相应索引调用每个对象的 .update字符串作为参数?
例如:
package Test;
import java.util.ArrayList;
import java.util.List;
class Class1{
private String string;
public void update(String s){
this.string = s;
}
public String str(){
return this.string;
}
}
class Class2{
private String string;
public void update(String s){
this.string = s;
}
public String str(){
return this.string;
}
}
class Class3{
private String string;
public void update(String s){
this.string = s;
}
public String str(){
return this.string;
}
}
public class Testing {
public static void main(String[] args) {
List<Object> object = new ArrayList<Object>();
Class1 class1 = new Class1();
Class2 class2 = new Class2();
Class3 class3 = new Class3();
object.add(class1);
object.add(class2);
object.add(class3);
String string_list[] = {"foo" , "bar", "barz"};
for(int i = 0 ; i < object.size(); i++) {
object.get(i).update(string_list[i]);
}
}
}
hence obj1.update("foo"), obj2.update("bar"), obj3.update("barz")
我在循环中不断收到“无法解析方法”错误。
Error:(68, 26) java: cannot find symbol
symbol: method update(java.lang.String)
location: class java.lang.Object)
但是当我将循环中的对象引用更改为对象而不是引用时,它可以正常工作。逻辑上它似乎是正确的,但似乎 ArrayList 列表不是保存对象的正确数据结构?或者也许它是并且我做错了,任何人有任何建议为什么它不工作以及我该如何解决它? 谢谢。
【问题讨论】:
-
发布完整的错误信息。
-
错误:(68, 26) java: 找不到符号 symbol: method update(java.lang.String) location: class java.lang.Object
-
这是什么语言?你试过的代码在哪里?
-
它是 java 因此标签“java”
-
您的
object列表只保证它的内容是Objects,因此当您使用objects.get时,您会得到一个Object,它显然没有update方法.您需要有一个共同的祖先,您的三个类都来自该祖先,或者使用instaneof来确定当前对象是否是特定对象的类型
标签: java