gpt4 book ai didi

java - 如何确定 Java 泛型方法中的类型?

转载 作者:行者123 更新时间:2023-11-29 09:56:33 25 4
gpt4 key购买 nike

我想要一种方法,可以从之前解析为正确类型的 JSON 对象中提取数据。 JSONObject(原始数据)扩展了 Map,所以它看起来像这样:

private <Type> Type getValue(String key, Type def)
{
if (!rawdata.containsKey(key)) return def;
if (!(rawdata.get(key) instanceof Type)) return def;
return (Type) rawdata.get(key);
}

instanceof 显然会产生编译时错误。参数 def 是默认值,如果键不可用或类型错误则返回。但是 def 也可以为 null,因此 def.getClass() 不起作用。

关于如何检查 Map 条目内容的类型是否正确,有什么想法吗?

最佳答案

由于类型删除,处理默认值可以为 null 的情况的唯一方法是让该方法需要一个类型为 Class 的附加参数——这通常更好,因为它允许默认值是所需类型的子类。

关于java - 如何确定 Java 泛型方法中的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9869501/

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