【发布时间】:2017-09-30 01:30:52
【问题描述】:
我正在尝试组合一个小型测试应用程序,该应用程序通过扫描仪获取输入,并通过哈希图和树集将它们放入内存中。
稍后我将搜索、编辑和删除它们(所以基本上是一个 CRUD),它需要 2 个类,一个员工类和一个公司类。我正在尝试为员工输入包含员工的所有信息,包括作为 POJO 中的外部自定义类对象的公司。
它不让我上课施放它,我该怎么办?
这里是 POJO
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String firstName;
private String lastName;
private String ssn;
private Integer salary;
private String birthDate;
private String jobTitle;
@ManyToOne
private Company companyName;
public Employee (String fN, String lN, String SSN, Integer sal, String birth, String jobT, Company compName) {
lastName = lN;
firstName = fN;
SSN = ssn;
sal = salary;
birth = birthDate;
jobT = jobTitle;
compName = companyName;
}
public String toString()
{
return "Employee[Last Name= " + lastName + ", First Name= " + firstName + " SSN= " + ssn + ","
+ "Salary= " + salary + ", Birth Date= " + birthDate + ", Job Title= " + jobTitle + ",]" ;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getSsn() {
return ssn;
}
public void setSsn(String ssn) {
this.ssn = ssn;
}
public Integer getSalary() {
return salary;
}
public void setSalary(Integer salary) {
this.salary = salary;
}
public String getBirthDate() {
return birthDate;
}
public void setBirthDate(String birthDate) {
this.birthDate = birthDate;
}
public String getJobTitle() {
return jobTitle;
}
public void setJobTitle(String jobTitle) {
this.jobTitle = jobTitle;
}
public Company getCompanyName() {
return companyName;
}
public void setCompanyName(Company companyName) {
this.companyName = companyName;
}
}
这是扫描仪所在类的一部分
System.out.println("Enter Company Name : ");
String val7 = input1.nextLine();
...
Employee newEmp = new Employee(str1,str2, str3, val4, str5, str6, val7);
如果我传入 str7,它显然会产生错误,因为该方法采用 CompanyName。
任何想法我需要做的 ClassCast 在这里都行不通。
这里编辑是公司类 公共类公司{ @ID @GeneratedValue(策略=GenerationType.AUTO) 私人长ID; 字符串公司名称; 私有字符串描述;
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
【问题讨论】:
-
添加完整的 stactrace 和 minimal reproducible example
-
如果我将 str7 传入。在您的代码中没有任何名为
str7的内容。虽然Employee构造函数的第七个参数应该采用Company类型。 -
您必须首先创建您的公司(通过您选择的公司构造函数),然后将该公司传递给 Employee 的构造函数!
-
不清楚问题出在哪里,但是你在构造函数中有一个逻辑错误,这个
compName = companyName;应该是相反的......就像这个companyName = compName ;因为你想分配从参数到成员的值,反之亦然 -
目前还没有堆栈跟踪,在我通过这部分之前无法运行。