[英]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};
}
我在 StackOverflow 中環顧四周,看到了一些這樣的問題,但其中大部分是由於他們使用的庫,並且是針對 Android Studio 的。
另外,我正在使用 Gradle 7.1(根據 gradle-wrapper.properties 文件)
我想知道是否有人可以幫助我解決此錯誤
在您的 EventPriority class 中,您使用字節(大寫 B),即 object。
您應該使用byte (小寫 b),它是一個原語。
來自文檔: https://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.28
編譯時常量表達式是表示原始類型值或字符串的表達式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.