我正在建立一个既有工人又有经理的小规模系统,经理继承了所有的工人属性,因为他也是一个工人,但在系统内有更高的访问权限。我有一个系统类,为了清晰起见,它已经缩小了尺寸,
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Scanner;
public class system {
static Depot depot = new Depot("d1");
//static Depot depot2 = new Depot("d2");
//static Depot depot3 = new Depot("d3");
static ArrayList<Depot> depotArray = new ArrayList<Depot>();
public static void systemSetup() {
depotArray.add(depot);
}
public static void main(String[] args) throws ParseException {
StateThreadClass stateThreadClass = new StateThreadClass();
Thread thread = new Thread(stateThreadClass);
thread.start();
systemSetup();
GetDepot();
}
}
一旦我得到了一个仓库,它就会把我带到我的主要仓库类中,它可以进行大部分计算。
import java.io.IOException;
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Iterator;
import java.util.Scanner;
//import Driver.Manager;
public class Depot{
String name;
int LOCount = 0;
int counter = 0;
@SuppressWarnings("deprecation")
Long date3 = 1478217600000L;
Date date1 = new Date(1478217600000L);
Date date2 = new Date(1479217600000L);
Worker worker = new Worker ("tom", "tom", false);
Worker worker = new Worker ("phil2", "phil2", false);
Worker worker = new Worker ("phil", "phil", true);
-----> Manager manager = new Manager("ben", "ben", true);
etc.....
}
我可以毫无问题地实例化Worker并在系统中使用它,但是当我尝试实例化Manager时,我收到一条错误,说“管理器无法解析为某种类型”,我可以选择导入它。当我这样做时,我得到另一个错误“导入工作者无法解决”
这是我的Worker和Manager类减去不必要的代码,
import java.io.IOException;
public class Worker {
private String username;
private String password;
private boolean available;
public Worker(String username, String password, boolean av) {
this.username = username;
this.password = password;
this.available = av;
}
public Boolean CheckPassword(String password) {
return this.password.equals(password);
}
public Boolean CheckUsername(String username) {
return this.username.equals(username);
}
public class Manager extends Worker {
public Manager(String username, String password, boolean av) {
super(username, password,av);
}
}
任何帮助都会受到赞赏,我知道我不应该使用静态,但我会在另一天处理! 欢呼声
答案 0 :(得分:0)
确保您的Manager类在其自己的文件中单独定义。由于它被定义为Worker的内部类,因此它目前无法在您的Worker类之外访问。
修复后,您应该能够从Depot类中引用您的Manager类,前提是它们位于同一个包中。如果不是,那么只需包含Manager类的导入,您就可以访问Manager类。
有关内部类的一些信息:http://www.javaworld.com/article/2077411/core-java/inner-classes.html。