gpt4 book ai didi

java - 修复 Java 属性

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:16 25 4
gpt4 key购买 nike

Java Properties 文档强烈反对使用 put 和 putAll 方法。我刚刚查看了 Properties 类的源代码,我有点惊讶地看到扩展 Hashtable 参数化类型设置为 Object 而不是 String。除了向后兼容之外还有其他原因吗? Properties 类也可以不通过额外的前提条件覆盖 put 和 putAll 方法(我知道这违反了 LKP,但扩展 Hashtable 无论如何都是一个糟糕的选择),大致如下:

if(p1 instanceof String && p2 instanceof String) {
return super.put(p1, p2);
}else {
throw new IllegalArgumentException("Invalid argument type");
}

谢谢

阿比迪

最佳答案

我同意这很烦人(并且 API 文档中的记录很少),但是,是的,这是为了向后兼容。

在前通用 java 中,如果您使用非 String 作为值调用 put(key, value),Properties 实例不会抛出异常(但它会从 getProperty(key) 返回 null)。

如果他们实现了上述修改,相同的调用代码将“更快失败”。世界各地数百个 Java 应用程序和 servlet 可能无法正确加载,并且会出现很多哀号和咬牙切齿的情况。

希望有帮助。

关于java - 修复 Java 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8087603/

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