Map.Entry<?,?> returns 作为对象 [Bukkit 插件加载器,AddonDescriptionFile]
Map.Entry<?,?> returns as object [Bukkit plugin loader, AddonDescriptionFile]
在代码中:
for (Map.Entry<?,?> command : ((Map)map.get("commands")).entrySet()) {
ImmutableMap.Builder<String, Object> commandBuilder = ImmutableMap.builder();
if (command.getValue() != null) {
for (Map.Entry<?, ?> commandEntry : ((Map)command.getValue()).entrySet()) {
if ((commandEntry.getValue() instanceof Iterable)) {
ImmutableList.Builder<Object> commandSubList = ImmutableList.builder();
for (Object commandSubListItem : (Iterable)commandEntry.getValue()) {
if (commandSubListItem != null) {
commandSubList.add(commandSubListItem);
}
}
commandBuilder.put(commandEntry.getKey().toString(), commandSubList.build());
}
else if (commandEntry.getValue() != null) {
commandBuilder.put(commandEntry.getKey().toString(), commandEntry.getValue());
}
}
}
commandsBuilder.put(command.getKey().toString(), commandBuilder.build());
}
第二个 Map.Entry returns 作为对象但第一个工作正常?
有什么帮助吗?
ERROR: Required: Map.Entry<?, ?>
Found: Object
截图:
似乎根本没有指定 any 类型参数,Map.entrySet()
returns 只是一个普通的未参数化 Set
。要获得 Set<Map.Entry<?,?>>
,您至少必须使用通配符类型参数,即转换为 Map<?,?>
for (Map.Entry<?, ?> commandEntry : ((Map<?,?>) command.getValue()).entrySet()) {
在代码中:
for (Map.Entry<?,?> command : ((Map)map.get("commands")).entrySet()) {
ImmutableMap.Builder<String, Object> commandBuilder = ImmutableMap.builder();
if (command.getValue() != null) {
for (Map.Entry<?, ?> commandEntry : ((Map)command.getValue()).entrySet()) {
if ((commandEntry.getValue() instanceof Iterable)) {
ImmutableList.Builder<Object> commandSubList = ImmutableList.builder();
for (Object commandSubListItem : (Iterable)commandEntry.getValue()) {
if (commandSubListItem != null) {
commandSubList.add(commandSubListItem);
}
}
commandBuilder.put(commandEntry.getKey().toString(), commandSubList.build());
}
else if (commandEntry.getValue() != null) {
commandBuilder.put(commandEntry.getKey().toString(), commandEntry.getValue());
}
}
}
commandsBuilder.put(command.getKey().toString(), commandBuilder.build());
}
第二个 Map.Entry returns 作为对象但第一个工作正常?
有什么帮助吗?
ERROR: Required: Map.Entry<?, ?>
Found: Object
截图:
似乎根本没有指定 any 类型参数,Map.entrySet()
returns 只是一个普通的未参数化 Set
。要获得 Set<Map.Entry<?,?>>
,您至少必须使用通配符类型参数,即转换为 Map<?,?>
for (Map.Entry<?, ?> commandEntry : ((Map<?,?>) command.getValue()).entrySet()) {