java - Typesafe Map 的多种键类型

标签 java generics

我试图看看是否可以使用 Java Generics Wildcarding With Multiple Classes 中指定的泛型来实现一个可以接受两个不同的的 Map

我试过了

public class LocalizedStringMap extends ConcurrentHashMap<Locale & String, String> {

但是这是一个语法错误。我能做的最接近的事情就是创建一个单独的方法来代替 getByLocale()

最佳答案

根据设计,这是不可能完成的。泛型为您处理类型装箱和编译时类型检查。使用您的示例,keySet() 将返回一个包含 Locale 和 String 成员的 Set 对象,无法强制执行类型检查或处理拆箱。

您引用的示例仅适用于单个类和一个或多个接口(interface),但不适用于多个类。

关于java - Typesafe Map 的多种键类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57718162/

相关文章:

java - 为什么 12 Factor 应用程序应该是独立的?

java - XPath Java Selenium 尝试根据另一列中的文本单击一个列中的值

java - Java 中的代码不会停止运行

typescript - 为什么以下 TypeScript 程序不会抛出类型错误?

java - 带有类型删除的方法重载

java - 泛型与对象和通配符的区别

c++ - 在泛型类中实现特定方法

class - 为 sort.data.frame 创建通用/方法一致性的最佳方法?

java - 用Java重写一段C代码构造满二叉树

Java:客户端、客户端、(线程)服务器、流客户端信息、JPanel 创建但消息(?)阻止游戏开始