当前位置: 首页 > 知识库问答 >
问题:

分叉代码中的Java NoSuchMethodError[副本]

仲孙夕
2023-03-14
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(插件)也使用了受影响项目中的代码。然而,它只是依赖于它,它没有以任何方式重新定义它。我查了很多可能的原因,但找不到任何原因。

似乎是罐子的唯一存在导致了错误。

共有1个答案

钦楚青
2023-03-14

这是运行时错误。引发异常的代码是根据包含该方法的代码版本编译的,但部署代码的可用版本没有该方法。

换句话说,编译器或IDE可用的库与部署位置的库之间存在版本不匹配。

 类似资料:
  • 问题内容: 我一直在遵循Beej网络指南,并且在服务器部分中,有一部分代码称为功能fork()。 我在Windows机器上,无法正常工作。我该怎么解决?我的代码如下。 问题答案: 检查您的模式中是否包含指向不存在的模块或没有成员的模块的include语句。我发现您的可能不正确。应该是吗?

  • 本文向大家介绍javascript实现二叉树的代码,包括了javascript实现二叉树的代码的使用技巧和注意事项,需要的朋友参考一下 前言: 二叉树的特点(例图只是二叉树的一种情况,不要尝试用例图推理以下结论) 除了最下面一层,每个节点都是父节点,每个节点都有且最多有两个子节点; 除了嘴上面一层,每个节点是子节点,每个节点都会有一个父节点; 最上面一层的节点(即例图中的节点50)为根节点; 最下

  • 可能重复: 什么是双大括号初始化在Java? 在查看一些遗留代码时,我遇到了一些非常令人困惑的问题: 在调试模式下运行代码后,我发现匿名块是在调用构造函数之后调用的。上面的功能和做的有什么不同: ?我会认为它们在功能上是等价的,并且会认为后一种方式是更好/更干净的编写代码的方式。

  • 我尝试在jade(Java代理开发框架)中编写代码来打印SMA中代理的二叉树。我想用origin算法打印树顺序遍历: 遍历左侧子树,即调用Inorder(left-subtree) 访问根。 遍历右侧子树,即调用Inorder(right-subtree) 而我的节点代理是: 在我的代理打印中,我使用作为扩展。用我的代码: 我不知道如何修复代码中的infini循环。谁能帮助我的详细算法而不是一般的

  • 我从Horstmann book(Volume2)中复制了代码示例,不明白为什么它不能工作。你能帮我吗?我试图删除IOException,但它引发了另一个问题 控制台日志

  • 在Chapter 4, 社会和政治的基础架构的the section called “分叉能力(forkability)”,我们说了潜在的分叉能力对于项目管理的重要影响。但是当分叉确实发生时,我们应该怎么做?你应该如何处理,会发生怎样的情况?与之对应,何时你应当开始一个分叉。 答案取决于你选择的分叉类型。有一些分叉源于对于项目方向的友善但不可调和的异议;也有一些由于技术分歧和个人冲突。当然,很难说