第一篇帖子很温柔。 :)我不确定我在这里做错了什么,希望有人可以帮助我。
我有一个实现List接口的Class。这个类也有它自己的方法,如果它不在列表中,它只会将一个项添加到列表中。麻烦的是,当我尝试使用我的conditionalAdd方法时,我收到一条错误,指出它无法找到我的方法,因为它在WorkflowSubType类中查找它。请参阅以下内容:
当我实例化我正在使用的类时:
List<WorkflowSubType> currentViolations = new Violations();
这是实现List接口的类的定义:
import java.util.*;
public class Violations<E> implements List<E>{
public Violations() {}
public void conditionalAdd(E violation){
if(violation != null)
if(!this.contains(violation))
add(violation);
}
@Override
public <T> T[] toArray(T[] a) {
return null;
}
@Override
public boolean add(E e) {
return false;
}
@Override....
那我怎么不能访问conditionalAdd方法呢。我创建的currentViolations对象是List,但它也是Violations类型。我说的是对的吗?
提前致谢。
RW
答案 0 :(得分:1)
您需要将实例转换为违规行为。如果您不这样做,编译器会将其解释为List,而List不具有conditionalAdd
方法。这样做:((Violations<WorkflowSubType>)currentViolations).conditionalAdd(whatever);