我有一个通用接口,我想以通用的方式实现这个接口:
public interface BaseBean<T> {
public T create(T t);
public T read(Long id);
public T update(T t);
public void delete(T t);
}
由于某种原因,我也不能使实现通用。 Eclipse以非泛型方式实现所有接口方法:
public class BaseBeanImpl<T> implements NewBaseBean {
@Override
public Object create(Object t) {
return null;
}
@Override
public Object read(Long id) {
return null;
}
@Override
public Object update(Object t) {
return null;
}
@Override
public void delete(Object t) {
}
@Override
public Object find(Long id) {
return null;
}
}
当我改变时:
public Object create(Object t)
到
public T create(T t)
我收到编译错误。我错过了什么吗?
答案 0 :(得分:11)
更改
public class BaseBeanImpl<T> implements NewBaseBean
到
public class BaseBeanImpl<T> implements NewBaseBean<T>
当您使用原始类型NewBaseBean
时,您在界面的方法中得到Object
而不是T
。
public class BaseBeanImpl<T> implements NewBaseBean<T> {
@Override
public T create(T t) {
return null;
}
@Override
public T read(Long id) {
return null;
}
@Override
public T update(T t) {
return null;
}
@Override
public void delete(T t) {
}
@Override
public T find(Long id) {
return null;
}
}