gpt4 book ai didi

Java 泛型 - 混合对象映射

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:36 25 4
gpt4 key购买 nike

我仍在习惯 Java 泛型,但我目前正在更新在泛型之前编写的应用程序以使用最新版本的 java。

问题是代码编写时没有考虑类型安全!

我们有一大堆基本上包含各种对象类型(包括字符串)的 map 。例如:

Map map = new HashMap();
map.put("key1", "String1");
map.put("key2", new Date());
map.put("key3", new CutsomClass());

现在我仍在努力寻找处理这些问题的最佳方法,而无需重构大量代码。目前无法进行重构。

目前我看不到任何过去的Map<String, Object>虽然Map<String, ? super Object>有效,但我认为它本质上是一样的?

最佳答案

I'm still struggling with the best way to handle these without getting into refactoring a whole lot of code

所以根本不要改变它们。原始类型 - 即 - 通用类型 - 在技术上仍然有效。这并不理想,它会生成编译器警告,但代码会工作(好吧,工作和以前一样好)。

所有类都扩展了 Object,因此您可以将任何 放入以下映射中:

Map<String, Object> map = new HashMap<>();

你得到了一个额外的保证,即键是一个字符串,所以它比使用原始类型要好一些。

但基本上,如果您不能定义键或值的类型,您真的应该尽量避免使用映射。

关于Java 泛型 - 混合对象映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44071667/

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