繁体   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