元素值必须是常量表达式

Element value must be a constant expression

我正在尝试为我的 Minecraft 客户端制作一个事件系统。完成后,我尝试 运行 它并遇到错误 element value must be a constant expression。此错误来自文件 EventTarget,其代码为:

package me.debug.moon.event;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface EventTarget {

    byte value() default EventPriority.THIRD;
}

byte value() default EventPriority.THIRD; 是给我错误的行。 如果有帮助,这里是我的 EventPriority 文件的代码:

package me.debug.moon.event;

public class EventPriority {
    public static final Byte FIRST = 0, SECOND = 1, THIRD = 2, FOURTH = 3, FIFTH = 4;

    public static final Byte VALUE_AARAY[] = new Byte[] {FIRST, SECOND, THIRD, FOURTH, FIFTH};
}

我在 Whosebug 中环顾四周,看到了一些这样的问题,但其中大部分是由于他们使用的库,并且是针对 Android Studio 的。

此外,我正在使用 Gradle 7.1(根据 gradle-wrapper.properties 文件)

我想知道是否有人可以帮我解决这个错误

在您的 EventPriority class 中,您使用 Byte(大写 B),它是一个对象。

你应该使用 byte(小写的 b),它是一个原语。

来自文档:https://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.28

A compile-time constant expression is an expression denoting a value of primitive type or a String