【发布时间】:2016-03-20 16:10:35
【问题描述】:
public enum CardinalDirection {
NORTH (90),
EAST (0),
SOUTH (270),
WEST (180);
private float angle;
CardinalDirection(float angle) {
this.angle = angle;
}
public float angle() {
return angle;
}
public CardinalDirection opposite() {
switch (this) {
case EAST: return WEST;
case NORTH: return SOUTH;
case SOUTH: return NORTH;
case WEST: return EAST;
default: return null;
}
}
}
你好,我很久以前就创建了这个枚举。 枚举在分叉代码中使用,这意味着另一个项目每次导出时都有这个确切的代码。
然而最近,在导出整个项目后,方法“angle()”正在抛出 NoSuchMethodError: ...angle()F
首先,方法末尾的F是什么意思? 其次,确定 100% 最新的代码怎么可能抛出这个错误?
Caused by: java.lang.NoSuchMethodError: org.thearaxgroup.surf.enums.CardinalDirection.angle()F
at org.thearaxgroup.act.object.ActionBoxDisplayManager.newArmorStand(ActionBoxDisplayManager.java:65) ~[?:?]
at org.thearaxgroup.act.object.ActionBoxDisplayManager.getArmorStand(ActionBoxDisplayManager.java:80) ~[?:?]
at org.thearaxgroup.act.object.ActionBoxDisplayManager.reloadArmorStand(ActionBoxDisplayManager.java:30) ~[?:?]
at org.thearaxgroup.act.command.CommandActBox.onCommand(CommandActBox.java:171) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot-1.9.jar:git-Spigot-bc01c3a-55b0def]
... 15 more
编辑:我确实发现了导致问题的原因......或多或少。 另一个 .jar(插件)也使用受影响项目中的代码。 但是,它只依赖于它,它不会以任何方式重新定义它。我检查了很多可能的原因,但找不到任何原因。
似乎是 jar 的唯一存在导致了错误。
【问题讨论】:
-
你能附上完整的堆栈跟踪吗?
标签: java enums nosuchmethoderror