gpt4 book ai didi

java - 在调用 super() 之前声明变量,但 super 必须是第一个语句

转载 作者:行者123 更新时间:2023-12-01 07:57:23 25 4
gpt4 key购买 nike

我在抽象类中有一个构造函数,它在构造函数中接受许多参数

我正在尝试扩展此类,并且想在扩展构造函数中对 super() 的调用中设置一些默认值。

问题是,通过查看代码,它看起来很困惑:

super(0,1,2,3,4,5,6,7,8,9);

(请记住,这已针对堆栈溢出进行了简化)。

我想要做的是有这样的构造函数:

    public Test(){
int a = 0;
int b = 1;
int c = 2;
int d = 3;
int e = 4;
int f = 5;
int g = 6;
int h = 7;
int i = 8;
int j = 9;
super(a,b,c,d,e,f,g,h,i,j);
}

纯粹为了视觉和易于阅读的目的。有什么办法可以做到这一点吗?

最佳答案

不,你不能这样做 - 但如果重要的部分是为参数提供有意义的名称,你可以考虑类似:

class Foo extends Bar {
private static final int DEFAULT_WIDTH = 10;
private static final int DEFAULT_HEIGHT = 10;

public Foo() {
super(DEFAULT_WIDTH, DEFAULT_HEIGHT);
}
}

就我个人而言,我发现这比在构造函数中使用局部变量更不言自明。

另一个解释选项是注释:

public Foo() {
super(
10, // width
10); // height
}

无论如何,这只会与您的“声明单独变量”代码的行数相同。

关于java - 在调用 super() 之前声明变量,但 super 必须是第一个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28299975/

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