LING_Y_
本帖最后由 LING_Y_ 于 2023-1-11 14:49 编辑

当前Yml文件如下
  1. Players:
  2.   <player>:
  3.   Guild: xxx
  4.   <player1>:
复制代码
先定义path="Players."+玩家变量+".Guild"
当服务器 get(path),若玩家为<player> 会返回 xxx (这不废话吗)
但是当玩家为<player1>时,get(path)时就会找不着对象了,并且会在Yml内莫名其妙的定义一些东西
,就是说当get不到path时,就是找不到"Player.<player1>.Guild" 就会跳过这个路径,变成"Players",至于为什么是"ATest" 我就不知道了,
//=======
情况是这样的,
本来player1的Guild值是ATest 但我set("Players.<player1>.Guild",null)
但同时,也发生了上面的问题
//=======
我在插件里写了一个这样的方法
  1. getGuildName(Player){
  2.   return config.getString("Players."+Player.getName+".Guild")
  3. }
复制代码
但我一开始没想过,如果get不到,最多返回个""或者null,我看 了下Configuration 的类里是这样写的




(defaults 就是config)
说的是如果 get不到时就返回默认值,我没定义,那就是"",


但是这里的get不到的意思是 get的值当值不 instanceof String 时,返回def,当path出问题时,get到的肯定就不是String(在我目前整个yml是这样)

所以我想问,当get的path有问题,get不到该怎么办,设不设默认值都会在Yml文件里莫名其妙的生成东西



第一页 上一页 下一页 最后一页