gpt4 book ai didi

java - 从静态外部 util 函数访问内部类

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:47:33 24 4
gpt4 key购买 nike

我的类结构大致如下:

final public class Util {
private Util() {
throw new AssertionError(); // there is not supposed to exist an instance
}

public static DataElem getData() {
return new Util().new DataElem();
}

public class DataElem {
// class definition
}
}

正确生成内部类实例的代码取自this线。但我不喜欢每次创建内部类实例时,首先创建外部实例的实例。由于我将 AssertionError 放入其构造函数中,因此它不起作用。

我是否必须携带一个虚拟实例来从内部类创建实例?我不能让像 Util.DataElem 这样的东西工作吗?

最佳答案

你可以让你的内部类静态化

final public class Util {
private Util() {
throw new AssertionError(); // there is not supposed to exist an instance
}

public static DataElem getData() {
return new Util.DataElem();
}

private static class DataElem {
private DataElem(){} // keep private if you just want elements to be created via Factory method
// class definition
}
}

然后像这样初始化它

new Util.DataElem();

关于java - 从静态外部 util 函数访问内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24661278/

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