java:将对象添加到对象的ArrayList中;出错
我有三个班:公司、部门和员工。公司由部门组成,部门由员工组成。非常基本。但当我尝试设置每个员工的部门时,会出现以下错误:java:将对象添加到对象的ArrayList中;出错,java,Java,我有三个班:公司、部门和员工。公司由部门组成,部门由员工组成。非常基本。但当我尝试设置每个员工的部门时,会出现以下错误: 令牌“countingGuru”上的语法错误,此令牌后应为VariableDeclaratorId 令牌上的语法错误,构造位置错误 我已经用谷歌搜索了错误,但我仍然很难找出我做错了什么 代码如下: public class Company { static String[] validDeptNames = { "Accounting", "Hum
- 令牌“countingGuru”上的语法错误,此令牌后应为VariableDeclaratorId
- 令牌上的语法错误,构造位置错误
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;
}
}
上市公司{
静态字符串[]validDeptNames={
“会计”、“人力资源”、“信息系统”、“营销”
};
静态部门会计=新部门(“会计”);
静态部门营销=新部门(“营销”);
静态部门信息系统=新部门(“信息系统”);
静态部门人力资源=新部门(“人力资源”);
公共静态void main(字符串[]args){
}
}
导入java.util.ArrayList;
公共课系{
部门,;
ArrayList员工;
部门(字符串部门名称){
employees=newarraylist();
}
静态员工盘点专家=新员工(“盘点专家”,55);
静态员工计数专业=新员工(“计数专业”,45);
静态员工计数平均值=新员工(“计数平均值”,40);
静态员工计数新手=新员工(“计数新手”,25);
静态员工销售专家=新员工(“销售专家”,50);
静态员工salesPro=新员工(“Sales Pro”,48);
静态员工销售悟性=新员工(“销售悟性”,38);
静态员工招聘专家=新员工(“招聘专家”,58);
静态员工招聘专业=新员工(“招聘专业”,47);
静态员工黑客专业=新员工(“黑客专业”,46);
静态员工黑客大师=新员工(“黑客大师”,51);
静态员工黑客萨维=新员工(“黑客萨维”,38);
静态员工黑客新手=新员工(“黑客新手”,23);
公共无效添加员工(员工){
员工。设置部门(本);
employees.add(employees);
}
会计。新增员工(会计专家);
}
公共类Employee实现了可比较的{
字符串名称;
内部管理;
部门,;
公共部门{
退货部;
}
公共服务部(部门){
这个部门=部门;
}
字符串名;
智力年龄;
公共雇员(字符串名称,整数年龄){
this.name=名称;
这个。年龄=年龄;
}
公共字符串getName(){
返回empName;
}
公共void集合名(字符串名){
this.empName=名称;
}
公共整数getAge(){
回报率;
}
公共无效设置(整数){
这个。empAge=年龄;
}
@凌驾
公共整数比较(员工arg0){
返回0;
}
}
您有会计。添加员工(计数专家)代码>在任何函数之外。像这样的非变量声明需要在方法、构造函数或函数中
由于会计
是公司
的静态
成员,您需要将其引用为公司.accounting.addEmployee(countingGuru)代码>
顺便说一句,有这么多东西是静态的,这不是一个很好的设计,因为这意味着你创建的每个公司都有相同的会计、营销、infoSys和人力资源部门。您应该使这些字段非静态,并在公司的构造函数中初始化它们。您有会计。addEmployee(countingGuru)代码>在任何函数之外。像这样的非变量声明需要在方法、构造函数或函数中
由于会计
是公司
的静态
成员,您需要将其引用为公司.accounting.addEmployee(countingGuru)代码>
顺便说一句,有这么多东西是静态的,这不是一个很好的设计,因为这意味着你创建的每个公司都有相同的会计、营销、infoSys和人力资源部门。您应该使这些字段非静态,并在公司的构造函数中初始化它们。您有会计。addEmployee(countingGuru)代码>在任何函数之外。像这样的非变量声明需要在方法、构造函数或函数中
由于会计
是公司
的静态
成员,您需要将其引用为公司.accounting.addEmployee(countingGuru)代码>
顺便说一句,有这么多东西是静态的,这不是一个很好的设计,因为这意味着你创建的每个公司都有相同的会计、营销、infoSys和人力资源部门。您应该使这些字段非静态,并在公司的构造函数中初始化它们。您有会计。addEmployee(countingGuru)代码>在任何函数之外。像这样的非变量声明需要在方法、构造函数或函数中
由于会计
是公司
的静态
成员,您需要将其引用为公司.accounting.addEmployee(countingGuru)代码>
顺便说一句,有这么多东西是静态的,这不是一个很好的设计,因为这意味着你创建的每个公司都有相同的会计、营销、infoSys和人力资源部门。您应该将这些字段设置为非静态字段,并在公司的构造函数中初始化它们。如果您将部门的构造函数更改为
Department(String deptName){
employees = new ArrayList<Employee>();
Company.accounting.addEmployee(countingGuru);
}
然后,您的代码将不会出错。如果您更改
accounting.addEmployee(countingGuru);