gpt4 book ai didi

java - 无法在构造函数中初始化静态最终字段

转载 作者:行者123 更新时间:2023-11-29 03:12:22 24 4
gpt4 key购买 nike

为什么我不允许在以下情况下分配最终修饰符:

public static final float aspectRatio;

public TestBaseClass() {
// TODO Auto-generated constructor stub
screenWidth = Gdx.graphics.getWidth();
screenHeight = Gdx.graphics.getHeight();
aspectRatio = screenWidth/screenHeight;

}

我想当我将一个变量声明为 final 并将其留空(未初始化)时,我需要在构造函数中添加一个值,因为它是第一个被调用的,并且每个类都有一个。

但我从 eclipse 中收到一条错误消息:无法分配最终字段 TestBaseClass.aspectRatio

为什么?

最佳答案

aspectRatiostatic,但您正试图在构造函数中对其进行初始化,每次新的实例 都会在构造函数中对其进行设置被 build 。根据定义,这不是最终的。尝试使用静态初始化 block 。

public static final float aspectRatio;
static {
screenWidth = Gdx.graphics.getWidth();
screenHeight = Gdx.graphics.getHeight();
aspectRatio = screenWidth/screenHeight;
}
public TestBaseClass() {
// Any instance-based values can be initialized here.
}

关于java - 无法在构造函数中初始化静态最终字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28633458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com