作者:不会游泳的小饼儿 | 来源:互联网 | 2023-02-03 14:38
我仍然习惯于Java Generics,但是我目前正在更新在泛型之前编写的应用程序以使用最新版本的java.
问题是代码不是用类型安全写的!
我们有一大堆地图,基本上包含各种对象类型,包括字符串.例如:
Map map = new HashMap();
map.put("key1", "String1");
map.put("key2", new Date());
map.put("key3", new CutsomClass());
现在我仍在努力处理这些问题的最佳方法,而不需要重构大量的代码.目前,重构不是一种选择.
目前我看不到任何过去Map
虽然Map
有效,但我认为它基本上是一回事?
1> Michael..:
我仍在努力处理这些问题的最佳方法,而不需要重构大量的代码
所以不要改变它们.原始类型(即非泛型类型)在技术上仍然有效.这不是理想的,它会产生编译器警告,但代码将起作用(好吧,工作和以前一样).
所有类都会扩展,Object
因此您可以将所需的任何值放入以下映射中:
Map map = new HashMap<>();
你得到一个额外的保证,键是一个字符串,所以它比使用原始类型更好.
但基本上,如果您无法定义键的类型或值,则应该尽量避免使用映射.
@Radiodef好一个.[Valhalla项目](https://en.wikipedia.org/wiki/Project_Valhalla_(Java_language))绝对是一个有趣的命题.