4
第一篇文章很温柔。 :)我不知道我在这里做错了什么,希望有人能帮助我。用额外的方法实现Java接口实现类
我有一个实现List接口的类。这个类也有它自己的方法,如果它不在列表中,它只会将一个项目添加到列表中。问题是,当我尝试使用我的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....
那么怎么来的,我可以” t访问conditionalAdd方法。我创建的currentViolations对象是一个List,但它也是一个Violations类型。我说得对吗?
在此先感谢。
RW
您将需要将您的实例转换为Violations。如果你不这样做,编译器将其解释为List,而List没有'conditionalAdd'方法。像这样做:'((Violations)currentViolations).conditionalAdd(whatever);' –
Viccari
完美。谢谢 – RalphW
我会添加一个答案。所以其他人可能会从中受益。如果您认为它有帮助,请接受/ upvote它。 – Viccari