作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的类结构大致如下:
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/
我是一名优秀的程序员,十分优秀!