gpt4 book ai didi

java - 强制调用 java 方法

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

我有一组这样形式的类A1An:

public class A1{

//constructor method
public A1(...){...}
//init method
public void init(){...}
//some class specific method
...
}

我想确保在类初始化之后始终调用方法init(如果不使用,可能会出现编译器错误或某种警告)。

类似于:

A1 a1=new A1(...);
//some other code that may relate to a1 (e.g. changing default global values)
a1.init(); // <-- if not used some bad things happens.

唯一的限制是:

我无法在构造函数中使用 init() 方法

那么有什么办法可以实现吗? (当然,除了在构造函数中调用 init() )。

最佳答案

您可以像这样重组您的类:

public class A1{

//constructor method
private A1(...){...}
//init method
private void init(){...}
//some class specific method
...
public static A1 create(...) {
A1 ret = new A1(...);
ret.init();
return ret;
}
}

出于其他原因,使用静态工厂方法而不是构造函数也可能更可取,您可以为它们提供更具表现力的名称,并且可以以无法重载构造函数的方式重载它们。

P.s.:您可以在 Josh Bloch 的《Effective Java》中阅读更多相关内容,它是第 1 条,但其他对象创建技巧也可能适合您的情况。

关于java - 强制调用 java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30842994/

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