簡體   English   中英

元素值必須是常量表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM