簡體   English   中英

java公共靜態最終對象

[英]java public static final object

下面的代碼,包含文件是這里

public abstract class Quart extends TweenEquation {
    public static final Quart IN = new Quart() {
        @Override
        public final float compute(float t) {
        return t*t*t*t;
    }
    ...

如果我在運行的應用程序中的某個地方調用Quart.IN.compute(0.5f)(例如,在每秒調用60次的render()函數中),是否在每次調用時都創建了一個新的Quart,還是只是分配了一次?

這是有道理的,對吧?

謝謝,干杯

根據定義,最終變量只能分配一次。 加載該類時,將初始化該類的靜態字段。 因此很明顯, IN Quart實例僅創建一次。

它只是分配一次

是的,您總是在同一對象上調用compute方法。

就一次。 靜態字段IN在首次訪問Quart類時初始化。

您還可以通過在創建Quart實例時寫入輸出來檢查它僅創建一次:

public abstract class Quart extends TweenEquation {
    public static final Quart IN = new Quart() {

        { System.out.println("created"); }

        @Override
        public final float compute(float t) {
            return t*t*t*t;
        }
    ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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