为什么我的代码不显示这2个Arraylist?
我需要显示一个ArrayList,列出一个人可能拥有的大学学位。为什么我的代码不显示这2个Arraylist?
在另一个ArrayList中,我需要显示符合公司要求的大学学位要求的个人列表。
在循环内尝试了一个system.out,它甚至没有访问for循环。
* 2种方法与for循环在这个类
import java.util.ArrayList;
public class RecruitingCompany {
private String companyName;
private int phoneNumber;
private String address;
private ArrayList<CollegeDegree> collegeDegreeList = new ArrayList<>();
private ArrayList<Candidate> candidateList = new ArrayList<>();
private Candidate candidate;
private Requirement academicDegree;
public RecruitingCompany(){
/*main constructor*/
}
public RecruitingCompany(String companyName, int phoneNumber, String address){
this.companyName = companyName;
this.phoneNumber = phoneNumber;
this.address = address;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public int getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(int phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public ArrayList<CollegeDegree> getCollegeDegreeList() {
return collegeDegreeList;
}
public void setCollegeDegreeList(ArrayList<CollegeDegree> collegeDegreeList) {
this.collegeDegreeList = collegeDegreeList;
}
public ArrayList<Candidate> getCandidateList() {
return candidateList;
}
public void setCandidateList(ArrayList<Candidate> candidateList) {
this.candidateList = candidateList;
}
public Candidate getCandidate() {
return candidate;
}
public void setCandidate(Candidate candidate) {
this.candidate = candidate;
}
public Requirement getAcademicDegree() {
return academicDegree;
}
public void setAcademicDegree(Requirement academicDegree) {
this.academicDegree = academicDegree;
}
public String showCandidateCollegeDegrees(){
String degree = "Candidato: " + candidate.getName() + "\n";
for (CollegeDegree cd: this.collegeDegreeList){
degree += cd.toString();
}
return degree;
}
public String selectByCollegeDegree(){
String person = "Título: " + academicDegree.getDegree() + "\n";
for (Candidate c: this.candidateList){
person += c.toString();
}
return person;
}
}
的Tester类
public class Tester {
public static void main(String[] args) {
AvailableJob availableJob = new AvailableJob(2005, 2011, "Contador", 444464444, "Metalco", "del poste de luz, 50m oeste", 550.000);
Candidate candidate = new Candidate("Asdrubal", 888888888, "[email protected]", "Bachillerato");
CollegeDegree collegeDegree = new CollegeDegree("Bachillerato Administracion", 2003, "Universidad Aguila Calva");
RecruitingCompany recruitingCo = new RecruitingCompany();
Requirement requirement = new Requirement("Bachillerato", 4);
recruitingCo.setCandidate(candidate);
recruitingCo.setAcademicDegree(requirement);
availableJob.setRequirement(requirement);
System.out.println(recruitingCo.showCandidateCollegeDegrees());
System.out.println();
System.out.println(recruitingCo.selectByCollegeDegree());
System.out.println();
System.out.println(availableJob.showRequirement());
//System.out.print(recruitingCo.getCandidateList());
}
}
您没有添加新的候选人或程度的的ArrayList。更改以下方法,将工作,
public void setAcademicDegree(Requirement academicDegree) {
this.academicDegree = academicDegree;
collegeDegreeList.add(academicDegree);
}
和
public void setCandidate(Candidate candidate) {
this.candidate = candidate;
candidateList.add(candidate);
}
现在,当您设置一个新的候选对象或对象CollegeDegree将被自动添加到列表中。
是的,这工作。正如resueman在另一篇文章中所说的那样,我没有给列表添加任何内容。我做了一些其他的改变,使一切工作,但这个职位让我走上正轨。谢谢 – lingote
没问题,谢谢你的确认虽然... :) –
在你的代码的最后,你需要做一些改变:
-
setCollegeDegreeList()
,setCandidateList()
和setCandidate()
方法 应该是CH anged到addCollegDegree()
和addCandidate()
-
recruitingCo.setCandidate(candidate)
应更换到recruitingCo.addCandidate(candidate);
- 需要添加在主
recruitingCo.addCollegeDegree(collegeDegree);
();
,你可以得到下面的代码:
import java.util.ArrayList;
public class RecruitingCompany {
private String companyName;
private int phoneNumber;
private String address;
private ArrayList<CollegeDegree> collegeDegreeList = new ArrayList<>();
private ArrayList<Candidate> candidateList = new ArrayList<>();
private Requirement academicDegree;
public RecruitingCompany(){
/*main constructor*/
}
public RecruitingCompany(String companyName, int phoneNumber, String address){
this.companyName = companyName;
this.phoneNumber = phoneNumber;
this.address = address;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public int getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(int phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public ArrayList<CollegeDegree> getCollegeDegreeList() {
return collegeDegreeList;
}
public ArrayList<Candidate> getCandidateList() {
return candidateList;
}
public void addCollegeDegree(CollegeDegree collegeDegree) {
this.collegeDegreeList.add(collegeDegree);
}
public void addCandidate(Candidate candidate) {
this.candidateList.add(candidate);
}
public Requirement getAcademicDegree() {
return academicDegree;
}
public void setAcademicDegree(Requirement academicDegree) {
this.academicDegree = academicDegree;
}
public String showCandidateCollegeDegrees(){
String degree = "Candidato: " + candidate.getName() + "\n";
for (CollegeDegree cd: this.collegeDegreeList){
degree += cd.toString();
}
return degree;
}
public String selectByCollegeDegree(){
String person = "Título: " + academicDegree.getDegree() + "\n";
for (Candidate c: this.candidateList){
person += c.toString();
}
return person;
}
}
测试仪:
public class Tester {
public static void main(String[] args) {
AvailableJob availableJob = new AvailableJob(2005, 2011, "Contador", 444464444, "Metalco", "del poste de luz, 50m oeste", 550.000);
Candidate candidate = new Candidate("Asdrubal", 888888888, "[email protected]", "Bachillerato");
CollegeDegree collegeDegree = new CollegeDegree("Bachillerato Administracion", 2003, "Universidad Aguila Calva");
RecruitingCompany recruitingCo = new RecruitingCompany();
Requirement requirement = new Requirement("Bachillerato", 4);
recruitingCo.addCandidate(candidate);
recruitingCo.addСollegeDegree(collegeDegree);
recruitingCo.setAcademicDegree(requirement);
availableJob.setRequirement(requirement);
System.out.println(recruitingCo.showCandidateCollegeDegrees());
System.out.println();
System.out.println(recruitingCo.selectByCollegeDegree());
System.out.println();
System.out.println(availableJob.showRequirement());
//System.out.print(recruitingCo.getCandidateList());
}
}
代码转储答案没有用,因为它不清楚你实际改变了什么。请描述更改内容。另外,复制你没有改变的代码是很有用的 - 如果它不是问题的一部分,不要将它作为答案的一部分。 –
我已经修好了 –
他在测试仪类中增加了2行。 – lingote
你从不向这些'ArrayList'添加任何东西。 – resueman
如何?我将它们添加到测试仪中。 – lingote
你正在设置'candidate'和'academicDegree'字段,但是那些不会修改'List'。如果你想,你需要在列表中调用'add'方法(例如,在你的'setCandidate'方法内部)。 – resueman