有没有一种方法可以将文件加载到java中的多个类,而不必每次都调用它们?
我一直在为一个多层停车场编写一个程序,我必须为停车位、服务员和每个区域的费用分别加载3个文件。问题是我需要跨多个类访问它们,而不必每次都调用.load()方法。这导致程序无法正常工作,因为它重置了类中加载的数据,因为我有两个主要类Application和Admin需要在它们之间共享这些数据。我能做些什么来解决这个问题 顶级类,其中包含公共静态void main有没有一种方法可以将文件加载到java中的多个类,而不必每次都调用它们?,java,Java,我一直在为一个多层停车场编写一个程序,我必须为停车位、服务员和每个区域的费用分别加载3个文件。问题是我需要跨多个类访问它们,而不必每次都调用.load()方法。这导致程序无法正常工作,因为它重置了类中加载的数据,因为我有两个主要类Application和Admin需要在它们之间共享这些数据。我能做些什么来解决这个问题 顶级类,其中包含公共静态void main public class Application { private Scanner scan; private Ad
public class Application {
private Scanner scan;
private Admin admin;
private ZoneCost zoneCost;
private Attendants attendants;
private Database database;
private Application() {
scan = new Scanner(System.in);
admin = new Admin();
zoneCost = new ZoneCost();
attendants = new Attendants();
database = new Database();
zoneCost.load();
database.load();
}
该类是从应用程序类调用的
public class Admin {
private Scanner scan;
private Attendants attendant;
private ZoneCost zoneCost;
private Database database;
Admin() {
scan = new Scanner(System.in);
attendant = new Attendants();
zoneCost = new ZoneCost();
database = new Database();
zoneCost.load();
attendant.load();
database.load();
}
如图所示,这两个类最终都调用了相同的.load()方法
编辑感谢大家帮助我快速解决此问题,节省了我大量的时间 只需使用构造函数将对象作为参数传递即可
public class Application {
private Scanner scan;
private Admin admin;
private ZoneCost zoneCost;
private Attendants attendants;
private Database database;
private Application() {
scan = new Scanner(System.in);
zoneCost = new ZoneCost();
attendants = new Attendants();
database = new Database();
zoneCost.load();
database.load();
admin = new Admin(scan, zoneCost, database, attendants );
}
public class Admin {
private Scanner scan;
private Attendants attendant;
private ZoneCost zoneCost;
private Database database;
Admin(Scanner scan, ZoneCost zoneCost, Database database,
Attendants attendant) {
this.scan = scan;
this.attendant = attendant;
this.zoneCost = zoneCost;
this.database = database;
}
要么将它们传递给
管理员
构造函数,要么让setter methodshow将它们传递给管理员构造函数@Scarywombat您必须创建/更改构造函数才能接受这些对象,而且还要通过扫描仪是的,谢谢!这为我节省了不少时间