实现一个通用接口

8

我有一个通用接口,我想以通用的方式实现这个接口:

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)

我遇到了编译错误,是我漏掉了什么吗?

1个回答

12

改变

public class BaseBeanImpl<T> implements NewBaseBean

to

public class BaseBeanImpl<T> implements NewBaseBean<T>

当您使用原始类型NewBaseBean时,在接口的方法中,您会得到Object而不是T。请注意保留HTML标签。
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;
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接