Ove*_*erv 5 java oop constructor
我正在创建一个库,我想返回一个表示真实世界对象的对象.我想向开发人员公开这个类来操作现实世界对象,但我不想让他们自己构造这些对象.
例
public class World {
public static List<RealObject> getAllObjects() {
// How to create RealObject with physicalID?
}
}
public class RealObject {
private int physicalID;
public RealObject(int physicalID) {
// Undesirable, user has no knowledge of IDs
}
public void setState(int state) {
// Code using physicalID to change state
}
}
Run Code Online (Sandbox Code Playgroud)
这些对象当前没有构造函数,并且具有id我在库中使用反射设置的私有字段.这很有效,但我不禁认为必须有更好的解决方案.在我的情况下,也许一个有用的约束是它只需要可以从另一个类构造这个对象.
有更好的解决方案吗?在这种情况下,为了组织目的,是否仍然可以将该类放在单独的文件中?
如果在构造函数(或任何其他方法)上放置默认访问级别,则只能由同一个包中的类访问.
具体回答标题中的问题:
public class RealObject {
RealObject(int physicalID) {
// Package-private constructor
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5521 次 |
| 最近记录: |