Java 如何调用存储在包含各种对象的向量中的对象的方法?
我有一个来自不同类的对象的向量列表,其中我需要调用特定于类的方法。这里有一个例子 这里是对象的类Java 如何调用存储在包含各种对象的向量中的对象的方法?,java,oop,vector,Java,Oop,Vector,我有一个来自不同类的对象的向量列表,其中我需要调用特定于类的方法。这里有一个例子 这里是对象的类 public class VariableElement extends FormulaElement{ private double varValue; public void setVariableValue(double varValue) { this.varValue = varValue; } } 我想在这里调用这个方法,它是FormulaElement类中
public class VariableElement extends FormulaElement{
private double varValue;
public void setVariableValue(double varValue) {
this.varValue = varValue;
}
}
我想在这里调用这个方法,它是FormulaElement类中的另一个方法
public void setVariableValue(double value){
for(Object o:tokenVector){
if(o instanceof VariableElement){
o.setVariableValue(value);//throws error symbol not found
}
}
}
这基本上就是我想要做的,但它会给出一个错误,我如何解决这个问题,有可能吗?提前感谢:)首先将对象强制转换为可变元素
public void setVariableValue(double value){
for(Object o:tokenVector){
if(o instanceof VariableElement){
VariableElement ve = (VariableElement)o;
ve.setVariableValue(value);
}
}
}
您只是忘记了将
o
大小写转换为variablelement
。只需做以下更改
((VariableElement)o).setVariableValue(value);
如果您有不同的对象,那么您可能应该定义一个
接口
,以指定希望它们调用的方法。如果所有对象的方法都相同,则可以将该对象强制转换为接口类型
,然后调用该方法
List objects=List.of(新狮子(),新瞪羚());
用于(对象o:对象){
(晚餐时间)喂我;
}
接口支持时间{
公共空间;公共空间;
}
晚餐时间{
公共空间管理{
System.out.println(“我想要一只羚羊”);
}
}
瞪羚类动物在晚餐时间进食{
公共空间管理{
System.out.println(“我想要一些蔬菜”);
}
}
对象上没有setVariableValue()
方法。您需要强制转换o
,然后才能对其调用该方法。如果向量中有多个VariableElement对象,会发生什么情况?新值是否会覆盖上一个值?@Laventio_19列表中的所有VariableElement都将其变量值设置为新值。