我有3个类:公司,部门和员工。公司由部门组成,部门由员工组成。很基本。但是,当我尝试设置每个员工的部门,我收到以下错误:java:将对象添加到对象的ArrayList;得到错误
-
令牌“countingGuru”
- 语法错误,VariableDeclaratorId预期后令牌(S),错位构建此令牌
- 语法错误(S )
我已经使用了错误,但我仍然无法弄清楚我做错了什么。
下面是代码:
public class Company {
static String[] validDeptNames = {
"Accounting", "Human Resources", "Information Systems", "Marketing"
};
static Department accounting = new Department("Accounting");
static Department marketing = new Department("Marketing");
static Department infoSys = new Department("Information Systems");
static Department humanRes = new Department("Human Resources");
public static void main(String[] args) {
}
}
import java.util.ArrayList;
public class Department {
Department department;
ArrayList<Employee> employees;
Department(String deptName){
employees = new ArrayList<Employee>();
}
static Employee countingGuru = new Employee("Counting Guru", 55);
static Employee countingPro = new Employee("Counting Pro", 45);
static Employee countingSavvy = new Employee("Counting Savvy", 40);
static Employee countingNovice = new Employee("Counting Novice", 25);
static Employee salesGuru = new Employee("Sales Guru", 50);
static Employee salesPro = new Employee("Sales Pro", 48);
static Employee salesSavvy = new Employee("Sales Savvy", 38);
static Employee hiringGuru = new Employee("Hiring Guru", 58);
static Employee hiringPro = new Employee("Hiring Pro", 47);
static Employee hackingPro = new Employee("Hacking Pro", 46);
static Employee hackingGuru = new Employee("Hacking Guru", 51);
static Employee hackingSavvy = new Employee("Hacking Savvy", 38);
static Employee hackingNovice = new Employee("Hacking Novice", 23);
public void addEmployee(Employee employee){
employee.setDepartment(this);
employees.add(employee);
}
accounting.addEmployee(countingGuru);
}
public class Employee implements Comparable<Employee> {
String empName;
int empAge;
Department department;
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
String name;
int age;
public Employee(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return empName;
}
public void setName(String name) {
this.empName = name;
}
public int getAge() {
return empAge;
}
public void setAge(int age) {
this.empAge = age;
}
@Override
public int compareTo(Employee arg0) {
return 0;
}
}
只是一个普遍的说法,你有领域和getters领域,但他们没有被宣布为私人。除非明确声明,Java字段默认为包访问。我知道一些语言不同,特别是Objective-C是相反的(默认情况下是私有的)。让公共/受保护领域的制定者和获取者当然是多余的。 – Radiodef
你的代码是一团糟。你应该先阅读教程。 –
@Radiodef谢谢你,我会解决这个问题。 – thatpaintingelephant