gpt4 book ai didi

android - 在 android 上的声明中从资源设置字段

转载 作者:行者123 更新时间:2023-11-30 03:17:57 24 4
gpt4 key购买 nike

这样的代码有什么问题吗?

public class SomeClass extends View {

private final float someFieldVariable = getResources().getDimension(R.dimen.someVariableValue);

....

}

最佳答案

我认为这是危险的代码。

上下文在调用 super 构造函数时连接。 someFieldVariable 的初始化取决于上下文,可能在调用 super 之前完成。

因此,有可能由于编译器不够智能而导致上下文未连接,然后您的初始化将因未捕获的异常而失败。这将导致您的应用程序崩溃。

即使它有效,我认为依赖编译器如何工作也是一种不好的风格。您应该在构造函数中对其进行初始化,以确保之前已调用 super-connstructor 或仅在需要时从资源中获取值。

我也认为定义一个局部变量来保存资源值并没有太大的优势。这就像定义一个变量来保存另一个变量,这个变量甚至是 final。如果您经常需要该值并且每个处理器周期都很重要,那么这是合理的。

关于android - 在 android 上的声明中从资源设置字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19700467/

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