使用泛型作为方法参数 Java
Using generics as method parameter Java
我有一个接口:
public interface DDLOperation <T extends Artifact> {
public void alter(T artifact);
public void create(T artifact);
public void drop(T artifact);
}
我还有一个实现该接口的抽象 class :
public abstract class AbstractDDLOperation <T extends Artifact> implements DDLOperation {
@Override
public abstract void alter(T artifact);
@Override
public abstract void create(T artifact);
@Override
public abstract void drop(T artifact);
public void processChildElement(Element childElement) {
Artifact artifact = createArtifact(childElement);
alter(artifact);
}
}
Eclipse 在 AbstractDDLOperation class 中出现此错误:AbstractDDLOperation 类型的方法 alter(T) 必须覆盖或实现超类型方法
我希望所有实现 AbstractDDLOperation 的子classes 传递不同类型的参数,所有参数都从 Artifact class 扩展到方法 alter、create 和 drop。
任何人都可以就此问题提出建议吗?
谢谢。
您的 class 应该实现 DDLOperation<T>
,而不是原始的 DDLOperation
。
应该是:
public abstract class AbstractDDLOperation <T extends Artifact> implements DDLOperation<T>
否则,您的抽象 class 方法不会覆盖或实现任何超类型(接口)方法,因此 @Override
注释不正确。
我有一个接口:
public interface DDLOperation <T extends Artifact> {
public void alter(T artifact);
public void create(T artifact);
public void drop(T artifact);
}
我还有一个实现该接口的抽象 class :
public abstract class AbstractDDLOperation <T extends Artifact> implements DDLOperation {
@Override
public abstract void alter(T artifact);
@Override
public abstract void create(T artifact);
@Override
public abstract void drop(T artifact);
public void processChildElement(Element childElement) {
Artifact artifact = createArtifact(childElement);
alter(artifact);
}
}
Eclipse 在 AbstractDDLOperation class 中出现此错误:AbstractDDLOperation 类型的方法 alter(T) 必须覆盖或实现超类型方法
我希望所有实现 AbstractDDLOperation 的子classes 传递不同类型的参数,所有参数都从 Artifact class 扩展到方法 alter、create 和 drop。
任何人都可以就此问题提出建议吗?
谢谢。
您的 class 应该实现 DDLOperation<T>
,而不是原始的 DDLOperation
。
应该是:
public abstract class AbstractDDLOperation <T extends Artifact> implements DDLOperation<T>
否则,您的抽象 class 方法不会覆盖或实现任何超类型(接口)方法,因此 @Override
注释不正确。