gpt4 book ai didi

java - 将对象转换为特定数字类型的优雅方法

转载 作者:行者123 更新时间:2023-11-30 06:50:34 24 4
gpt4 key购买 nike

 Map<String,Object> node = Maps.newHashMap();
int courseId = ((Number) node.get("d")).intValue();

该节点是一个包含键 'd' 的映射相关值为 short Number ,上面的代码是转换 short 的安全方法至int ,但是代码风格很痛苦。 :(

我的问题:有没有更优雅的方法来处理这种情况,我搜索过 'Guava' lib,但没有找到任何相关的东西。

<小时/>

这里我更新了问题,原始数据是zookeeper节点上的json对象。反序列化后,它将值向上转换为对象,结果是 Map<String,Object>

最佳答案

如果 map 值不只有 Short 怎么办?

这是某种通用方法:

@Test
public void test() throws Exception {
Map<String, Object> node = new HashMap<>();
int courseInteger = popNumber(node.get("d"));

// test popNumber method with Integer
int i = popNumber(5);
System.out.println(i); // output 5

// test popNumber method with Short
short s = popNumber(new Short("23"));
System.out.println(s); // output 23

// test popNumber method with Long
long l = popNumber(2342L);
System.out.println(l); // output 2342
}

private <Num extends Number> Num popNumber(Object o) {
if (o instanceof Number)
return (Num) o;

// you may do smth else if you get not Number or its child
// as map value rather to retur null
return null;
}

关于java - 将对象转换为特定数字类型的优雅方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42875057/

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