【发布时间】:2014-03-20 12:28:29
【问题描述】:
我想从 Apache Commons BeanUtils 实现以下接口:
public interface Converter {
// Convert the specified input object into an output object of the specified type
<T> T convert(java.lang.Class<T> tClass, java.lang.Object o);
}
我的实现应该采用 Enum 的子类并将 String 对象转换为指定类型的枚举。我尝试使用以下声明:
class EnumConverter implements Converter {
@Override
public Enum convert(Class<Enum> tClass, Object o) {
...
}
}
但是编译器不同意我的观点。它输出:
错误:EnumConverter 不是抽象的并且不会覆盖抽象 Converter 中的方法 convert(Class,Object)
错误:名称冲突: EnumConverter 中的 convert(Class,Object) 和 Converter 中的 convert(Class,Object) 具有相同的擦除,但是 两者都不会覆盖另一个
错误:方法没有覆盖或 从超类型实现方法
我的实现有什么问题?
UPD。请更仔细地阅读问题。我无法更改它在 Apache Commons BeanUtils 库中的转换器接口。
【问题讨论】:
-
您还需要使您的界面通用。
-
@DaveNewton “我想从 Apache Commons BeanUtils 实现以下接口”。它是一个第三方库,我无法更改它。
标签: java enums overriding