能不能定义接口时,接受参数。这个参数做为接口中方法的返回类型?

能不能定义接口时,接受参数。这个参数做为接口中方法的返回类型?
比如:
/ 定义一个能接受参数的接口 /
public interface MyInterface<T>{

/* 把这个参数作为方法返回类型 */
public List<T> method();

}
问题来自与SPRINGBOOT,service调用dao.find方法,返回总是list<String>,因为dao使用@mapper是接口,我想把对象转入,使其它方法返回list<对象>。

阅读 5.1k
5 个回答

可以的

但是如果 dao 层 接口的方法返回 list<Student> 这种

@Mapper
public interface dao{
    
    List<Student> find();
}

可以直接这样的昂

import java.util.List;

public interface Test<T> {
    List<T> get();
}

完全没问题啊!

可以考虑这样:

public interface BaseMapper<T> {
    public List<T> method();
}


@Mapper
public interface Impl extends BaseMapper<Student> {}

接口可以这么指定,但是实际实现类类要指明实际的类型,不然返回泛型无法返回的封装结果了

我觉得问题的关键在于dao接口没有显式的实现类,T类型因此没有传入的位置,另外返回String的问题,建议附上mapper.xml,主要关注一下resultType或resultMap的内容。
希望能帮到你。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题