gpt4 book ai didi

java.lang.ClassCastException : [Ljava. lang.String;与 java.lang.String 不兼容

转载 作者:行者123 更新时间:2023-11-30 02:56:53 28 4
gpt4 key购买 nike

我正在执行以下操作

 String s = caseInsensitiveMap.get("buyerCode");

我收到错误

java.lang.ClassCastException: [Ljava.lang.String; incompatible with java.lang.String

我就是不知道我做错了什么。谷歌搜索答案似乎表明需要在某个地方使用 String[] ,但我不知道在哪里。

更多相关信息:

caseInsensitiveMap : Map caseInsensitiveMap - com.msw.commerce.me.commands.MSWOrgCmdImpl.setRequestProperties(TypedProperty)

.get() : String java.util.Map.get(Object key)

我也尝试过这样做

String s = caseInsensitiveMap.get((Object) "buyerCode");

显式地将字符串“buyerCode”转换为其所需的对象类型,但我得到了相同的错误。

有人可以告诉我我做错了什么吗?据我所知,我匹配了这里的所有类型。 .get() 接受一个对象,我给它一个对象。它返回一个字符串,我将它分配给一个字符串。

<小时/>

编辑:更多代码

public void setRequestProperties(TypedProperty reqProperties)
throws ECException {
Map<String, String> reqMap = reqProperties.getMap();
Map<String, String> caseInsensitiveMap = new TreeMap<String, String>(
String.CASE_INSENSITIVE_ORDER);
caseInsensitiveMap.putAll(reqMap);

这里是 TypedProperty 的文档

最佳答案

几乎可以肯定,TypedProperty.getMap() 是异构的。它实际上是从字符串键到对象的映射,因此将其分配给 Map< String, String > 类型的变量是不安全的。 。如果您在排队时没有收到警告

Map<String, String> reqMap = reqProperties.getMap();

这可能是因为您的开发环境中禁用了有关未经检查的转换的警告。

问题不在于 key 的类型,而在于 key 的类型。问题在于您尝试添加到 TreeMap 的的类型。您无法将字符串数组转换为字符串,因此 putAll()将会失败。

尝试将您的 TreeMap 声明为

Map<String, Object> reqMap = reqProperties.getMap();
Map<String, Object> caseInsensitiveMap = new TreeMap<String, Object>(
String.CASE_INSENSITIVE_ORDER);

关于java.lang.ClassCastException : [Ljava. lang.String;与 java.lang.String 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37012298/

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