Java Bukkit配置-获取分段和安全强制转换

Java Bukkit配置-获取分段和安全强制转换,java,plugins,configuration,minecraft,bukkit,Java,Plugins,Configuration,Minecraft,Bukkit,我有以下配置文件: arenas arena1 info: infotest info2: info2test arena2 info: infotest info2: info2test 所以。现在我想得到一个竞技场,并将其转换为竞技场对象,我有一个构造器在那里获取一张地图。因此,我做了以下几点: Arena a = new Arena((Map<String, Object>) getConfig().get("arenas.arena1

我有以下配置文件:

arenas
  arena1
    info: infotest
    info2: info2test
  arena2
    info: infotest
    info2: info2test
所以。现在我想得到一个竞技场,并将其转换为竞技场对象,我有一个构造器在那里获取一张地图。因此,我做了以下几点:

Arena a = new Arena((Map<String, Object>) getConfig().get("arenas.arena1"));
arenaa=newarena((Map)getConfig().get(“arenas.arena1”);
这是有效的。但是:我在eclipse中收到以下警告:

Type safety: Unchecked cast from Object to Map<String,Object>
类型安全:未选中从对象到映射的强制转换
我不明白为什么会这样。但是我怎样才能改变获取信息的方式来避免这种情况,从而做出一个“安全”的演员阵容呢

我的第二个问题是:现在我想从竞技场获得所有的子地图 并在插件加载时初始化它们。我怎样才能得到所有的?我找不到像arenas.getAll()这样的东西,或者我不知道。。像这样的。。有人有主意吗


谢谢。

对于您的第一个问题,您可以获取配置部分“arena1”,并以地图的形式获取所有值,而无需任何警告。为此,请使用:

config.getConfigurationSection("arenas.arena1").getValues(false);
或者,您可以将
@superssawarnings(“未选中”)
放在使用该代码的方法上。因为你知道你要得到的类型是一张地图,警告并没有什么意义,尽管有些开发人员可能会考虑这个错误的做法。 对于第二个问题,您可以使用类似的方法。getValues()本质上是getAll()类型的方法,它获取节中所有键和值的映射。因此,您可以使用:

config.getConfigurationSection("arenas").getValues(false);