gpt4 book ai didi

java - 如何使构造函数的参数可从实例初始化程序中获取?

转载 作者:行者123 更新时间:2023-12-01 19:25:28 27 4
gpt4 key购买 nike

class Foo {
final String s;

final int x = s.length();

Foo(String s) {
this.s = s;
}
}

上面的代码将无法编译,因为对 x 的赋值发生在对 s 的赋值之前。我可以将对 x 的赋值放在构造函数内,但为了在具有 100 个字段的实际情况下的可读性,我宁愿不这样做。

我想出了一个我不喜欢的解决方法。你能找到更好的吗?

abstract class Hack {
final String s;

Hack(String s) {
this.s = s;
}
}

class Foo extends Hack {
final int x = s.length();

Foo(String s) {
super(s);
}
}

最佳答案

因为它是为了可读性:

class Foo {    
final String s;
final int sizeOfS;
Foo(String s) {
this.s = s;
sizeOfS = s.length();
}
}

可读性首先来自于适当的变量命名!

关于java - 如何使构造函数的参数可从实例初始化程序中获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1421054/

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