偏航和俯仰是双倍值,但在新的Location
对象中,他们要求浮动而我无法执行(Float) pitch
,因为它显示错误,表示我无法执行此操作
这是我的代码:
float yaw = (Float) getConfig().get("location.Yaw");
float pitch = (Float) getConfig().get("location.Pitch");
Location teleport = new Location(w, getConfig().getDouble("location.X"), getConfig().getDouble("location.Y"), getConfig().getDouble("location.Z"), yaw, pitch);
在我的配置中,偏航和俯仰是双倍值,坐标不是问题所以让我们忽略它们,问题只是偏航和俯仰
新的Location
对象初始化参数是:
Location teleport = new Location(World world, Double x, Double y, Double z, Float yaw, Float pitch);
答案 0 :(得分:2)
假设没有getFloat
方法,请使用:
float yaw = (float) getConfig().getDouble("location.Yaw");
您无法将String
投射到Float
。引用转换永远不会将对象转换为其他对象 - 它们只允许您具有引用同一对象的不同类型的引用。由于get
会返回String
个对象,而String
s也不会Float
s,因此您无法将String
投放到Float
}}
float
和Float
之间的区别也很重要。除了装箱/拆箱转换之外,您永远不能在基元和引用之间进行转换。
答案 1 :(得分:0)
您可以使用Float.parseFloat()
将字符串转换为浮点数。例如:
String str = "13.715";
float value = Float.parseFloat(str); //value is now equal to 13.715f
要从配置中获取值并解析浮点数,您可以使用:
String valueFromConfig = getConfig().getString("my.path");
float myFloat = Float.parseFloat(valueFromConfig);
所以,这就是你的代码的样子:
float yaw = Float.parseFloat(getConfig().get("location.Yaw"));
float pitch = Float.parseFloat(getConfig().get("location.Pitch"));
Location teleport = new Location(w, getConfig().getDouble("location.X"), getConfig().getDouble("location.Y"), getConfig().getDouble("location.Z"), yaw, pitch);