我不确定这里发生了什么,因为我正在实现此接口正确指定类型,但是我收到此错误..
基本的TelemetryDataType定义:
public interface TelemetryData<T> extends Iterable<T> {
}
接口声明:
public interface DataAccessor<R, T> {
T access(TelemetryData<R> dataStore) throws IOException;
}
实施班:
static abstract class A<R, T> implements DataAccessor<R, T> {
@Override
public final T access(TelemetryData<R> dataStore) throws IOException {
//implementation
}
}
编译错误是: 错误:名称冲突:A中的访问(TelemetryData)和DataAccessor中的访问(TelemetryData)具有相同的擦除,但都不会覆盖其他
实现类使用指定的泛型类型实现接口,这应该解决类型擦除问题,并且方法实现的定义是确切的签名(除了final应该是无关的)
对此问题有任何了解,因为这对我来说是正确的.. 源/目标是1.7使用JDK 1.8进行编译。
编辑: 这很奇怪,我将问题代码放入SCCE的单个文件中并构建..这让我想知道maven / netbeans是否在某处留下了一些垃圾......