gpt4 book ai didi

java - 使用maven编译ParameterizedType时如何解决这个警告

转载 作者:行者123 更新时间:2023-12-01 09:50:47 28 4
gpt4 key购买 nike

这段时间,我使用泛型来处理一些映射。代码如下:

@Component
public class AbstractEntityMapping<entity, dto> implements EntityMapping<entity, dto> {
@Autowired
protected Mapper mapper;

private Logger logger = LoggerFactory.getLogger(AbstractEntityMapping.class);


@SuppressWarnings("unchecked")
public dto entityToDTO(entity entity) {
if (entity == null) {
return null;
}
try {
final dto dto = (dto) getDTOClass().newInstance();
mapper.map(entity, dto);
return dto;
} catch (Exception e) {
logger.error("mapping entity to dto error", e);
}
return null;
}

private Class getEntityClass() {
ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass();
Type type = genericSuperclass.getActualTypeArguments()[0];
Class<entity> clazz;
if (type instanceof ParameterizedTypeImpl) {
clazz = (Class<entity>) ((ParameterizedTypeImpl) type).getRawType();
} else {
clazz = (Class<entity>) type;
}
return clazz;
}

private Class getDTOClass() {
ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass();
Type type = genericSuperclass.getActualTypeArguments()[1];
Class<entity> clazz;
if (type instanceof ParameterizedTypeImpl) {
clazz = (Class<entity>) ((ParameterizedTypeImpl) type).getRawType();
} else {
clazz = (Class<entity>) type;
}
return clazz;
}

}

当我使用maven编译这段代码时,它提示我:

[WARNING] AbstractEntityMapping.java:[131,39]     sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl是内部专用 API, 可能会在未来发行版中删除

如何解决此警告?是否有任何类可以替换 ParameterizedTypeImpl?

最佳答案

这是关于使用不应该使用的 java 内部类的警告。而是使用 "public" interface该类的

if (type instanceof ParameterizedType) {
clazz = (Class<entity>) ((ParameterizedType) type).getRawType();

关于java - 使用maven编译ParameterizedType时如何解决这个警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37615340/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com