java—在泛型接口中创建一个静态变量,该接口返回所述接口(或者至少在spring的Map器中)

ecfdbz9o  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(360)

我目前有如下代码:

@Mapper
public interface UserMapper extends BasicMapper<User, UserDto> {
    UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);
}

以及通用接口,其外观如下所示:

@Mapper
public interface BasicMapper<Entity, Dto extends AbstractDto> {
    // This is something I'd like to have, but it doesn't work :(
    // BasicMapper<Entity, Dto> INSTANCE = Mappers.getMapper(BasicMapper<Entity, Dto>.getClass());
    // (Skipped ordinary methods...)
}

它可以工作,但我正在尝试推静态变量 INSTANCE 转化为泛型 BasicMapper 接口。有可能吗?如果没有,最好的解决方法是什么?我更喜欢一个不依赖spring和注解的通用答案,但如果不可能,我会选择使用字符串和注解的最佳解决方案 @Mapper 注解。

uqxowvwt

uqxowvwt1#

我通常用工厂来解决这样的问题

public static final User_Mapper createUserMapper() {
  User_Mapper um = new User_Mapper();
  um.INSTANCE = appers.getMapper(UserMapper.class);
}

相关问题