代码:
Dictionary<String, Integer> dict = new Hashtable<>();
dict.put(record);
Run Code Online (Sandbox Code Playgroud)
如果您已经为字典定义了数据类型,是否可以将另一种数据类型放入字典中?例如,我想放置数据类型为 的记录Data。
如果您已经为字典定义了数据类型,是否可以将另一种数据类型放入字典中?
不。
您可以放入子类型,但不能放入完全不同的类型。Java 泛型的目的是使编译器能够阻止您使用不同的类型。
如果您定义了Map持有String导致类型值的类型的键Integer,那么:
String对象本身,或者是 的子类String。String是final,因此不存在“String”的子类。Integer对象本身,或者是 的子类Integer。Integer是final,所以不存在 的子类之类的东西Integer。假设我们使用更通用的类型CharSequence和定义了您的地图Number。然后我们可以添加条目,其中键是CharSequence接口的任何实现,例如String和StringBuilder。我们可以添加值为 和 的任何子类Number的Integer条目Double。
Map < CharSequence, Number > map =
Map.of (
"Alice" , Integer.valueOf ( 42 ) , // String , Integer
new StringBuilder ( "Bob" ) , Double.valueOf ( "7.8" ) // StringBuilder , Double
);
Run Code Online (Sandbox Code Playgroud)
如果您想使用记录String替换您的->配对,则无需. 只需使用任何您想要收集记录类型对象的实现即可。IntegerMapSetList
record CatsPerPerson ( String name , int countOfCats ) {}
List< CatsPerPerson > list =
List.of (
new CatsPerPerson ( "Alice" , 2 ) ,
new CatsPerPerson ( "Bob" , 0 ) ,
new CatsPerPerson ( "Paula Poundstone" , 12 )
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |