我正在尝试创建一个在其外部类的构造函数中使用的类的实例。参考下面的代码,我需要一个UserData
对象,但我也需要一个TimeOnlineInfo
对象来创建它,而且我看不到在TimeOnlineInfo
没有先拥有实例的情况下获取对象的方法,UserData
因为TimeOnlineInfo
不是静态的。我不能让它成为静态的,因为它需要从它的外部类访问一个方法。无论如何我可以让它工作或获得最相似的效果吗?我确实意识到我可以将类设为静态而不直接在 addTime 方法中保存数据,但我已经完成了这个问题的一半,我很想知道是否有办法做到这一点。
这是我的代码的一个非常简化的版本:
class UserData {
TimeOnlineInfo timeOnline;
public UserData(Object data1, Object data2, Object data3, Object data4, Object data5, TimeOnlineInfo timeOnlineInfo){
this.timeOnlineInfo = timeOnlineInfo;
}
public class TimeOnlineInfo {
private int time;
public TimeOnlineInfo(int time){
this.time = time;
}
public void addTime(int time){
this.time += time;
UserData.this.saveData();
}
}
}
UserData userData = new UserData(new UserData.TimeOnlineInfo());//Doesn't work because PlayInfo is not a static class
UserData userData = new UserData(userData.new TimeOnlineInfo());//This is just a stupid because i'm using the uncreated object in its own constructor