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;
}
}
}
Merhaba, bu enum'u bir süre önce oluşturdum. Enum, çatallı kod içinde kullanılıyor, yani başka bir proje, dışarı aktarıldığında her zaman bu tam kodu içeriyor. Geçenlerde AncakJava NoSuchMethodHata kodu çatallı kodda
, tüm proje, metot "açı()" Bir NoSuchMethodError atıyor dışa aktardıktan sonra: ... yöntemin sonunda F ne açı() F hepsinden
Birincisi, anlamına gelmek? Her şeyden önce, kesinlik ile bugüne kadar% 100 olan kodun bu hatayı nasıl atması mümkündür?
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
DÜZENLEME: Sorunun nedenini buldum ... daha fazla veya daha az. Başka bir .jar (eklenti), etkilenen projedeki kodu da kullanır. Bununla birlikte, sadece ona bağlı, herhangi bir şekilde yeniden tanımlamaz. Olası sebepleri kontrol ettim ve hiçbir sebep bulamıyorum.
Kavanozun tek varlığı hatanın sebebi gibi görünüyor.
Tam stacktrace ekleyebilir misiniz? – Alexey