为了账号安全,请及时绑定邮箱和手机立即绑定

如何从给定的片段中返回 T.class?

如何从给定的片段中返回 T.class?

POPMUISE 2022-07-27 19:54:12
private static User yaml() throws IOException, JsonParseException, JsonMappingException {    ObjectMapper mapper = new ObjectMapper(new YAMLFactory());    return mapper.readValue(new File("user.yaml"), User.class);}上面的代码特定于“用户”类我想让它像这样通用,private static <T> T yaml() throws IOException, JsonParseException, JsonMappingException {    ObjectMapper mapper = new ObjectMapper(new YAMLFactory());    return mapper.readValue(new File("user.yaml"), T.class);}但是在 T.class 出现错误,有人可以提出建议吗?爪哇
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

不幸的是,您无法获得想要的东西。但是,您可以将Class<T>作为输入参数提交给yaml(...). 您还必须考虑文件名,因为它不再只是user.yaml.


一个解决方案可能是将两者都作为参数传递


private static <T> T yaml(final Class<T> clazz, final String fileName) throws IOException, JsonParseException, JsonMappingException {

    return MAPPER.readValue(new File(fileName), clazz);

}

我ObjectMapper从方法中删除了创建,因为它是线程安全的,因此可以存储为static final类字段。


查看完整回答
反对 回复 2022-07-27
  • 1 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号