我想要實現從Apache的共享BeanUtils的以下接口:爲什麼這個@Override不正確?
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);
}
我實施應採取枚舉的子類,String對象轉換爲指定類型的枚舉。我試圖使用以下聲明:
class EnumConverter implements Converter {
@Override
public Enum convert(Class<Enum> tClass, Object o) {
...
}
}
但編譯器不同意我。它輸出:
error: EnumConverter is not abstract and does not override abstract method convert(Class,Object) in Converter
error: name clash: convert(Class,Object) in EnumConverter and convert(Class,Object) in Converter have the same erasure, yet neither overrides the other
error: method does not override or implement a method from a supertype
我的實現有什麼問題?
UPD。請仔細閱讀該問題。我無法更改它在Apache Commons BeanUtils庫中的Converter接口。
你需要讓你的接口一般爲好。 –
@DaveNewton「我想從Apache Commons BeanUtils實現以下接口」。它是我無法更改的第三方庫。 –