Java 俯仰和偏航-定位和传送

Java 俯仰和偏航-定位和传送,java,bukkit,Java,Bukkit,偏航和俯仰是双值,但在新的位置对象中,它们要求浮动,而我不能执行(浮动)俯仰,因为它显示一个错误,表示我不能执行 这是我的密码: float yaw = (Float) getConfig().get("location.Yaw"); float pitch = (Float) getConfig().get("location.Pitch"); Location teleport = new Location(w, getConfig().getDouble("location.X"), g

偏航和俯仰是双值,但在新的
位置
对象中,它们要求浮动,而我不能执行
(浮动)俯仰
,因为它显示一个错误,表示我不能执行

这是我的密码:

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);
可以使用将字符串转换为浮点。例如:

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);

假设没有
getFloat
方法,请使用:

float yaw = (float) getConfig().getDouble("location.Yaw");
不能将
字符串
强制转换为
浮点
。引用强制转换从不将对象转换为其他对象-它们只允许您拥有引用同一对象的不同类型的引用。由于
get
返回
String
对象,并且
String
s也不是
Float
s,因此不能将
String
强制转换为
Float

float
float
之间的区别也是相关的。除了装箱/取消装箱转换,您永远不能在原语和引用之间强制转换