2012-08-24 15 views
1

좋아요, 약간의 수수께끼가 있습니다. 나는 숙제를하고 있다고 말하면서 넘어 질 것입니다. 나는 명백한 것을 놓치고있을 것이라고 확신하지만, 인터넷과 교과서를 수 시간 동안 검색해 보아서 이것에 대한 답을 찾은 후에 나는 벽에 맞서고 누군가가 나를 가리킬 수 있기를 바라고있다. 바른 길.Java : ArrayList의 요소를 인쇄 할 수 없습니다.

직원 개체를 정의하는 "employee"클래스를 만들었으므로 직원 이름과 판매 합계에 대한 getter 및 setter 메서드가 있습니다. 다음과 같이 보입니다.

public class employee { 
    private String employeeName; 
    private double yearSales; 

    public employee(String employeeName, double yearSales) 
    { 
     this.employeeName = employeeName; 
     this.yearSales = yearSales; 
    } 

    public void setName(String employeeName) 
    { 
     this.employeeName=employeeName; 
    } 

    public void setSales(double yearSales) 
    { 
     this.yearSales=yearSales; 
    } 

    public String getEmployee() 
    { 
     return employeeName; 
    } 

    public double getYearsSales() 
    { 
     return yearSales; 
    } 
} 

그런 다음 직원 개체가 포함 된 ArrayList를 인스턴스화하기위한 메서드가 있습니다. 내가 곤경에 실행하고

public ArrayList employeeArray(String name, double sales) 
{ 

    //Instantiate a new ArrayList object 
    ArrayList employeeList = new ArrayList(); 

    //Initialize the values in the ArrayList 
    employeeList.add(new employee(name, sales)); 

    return employeeList; 

} 

ArrayList에서 이름 값을 출력하려고 함께, 아래 : 아래 그림과 같이 내가 ArrayList를 생성 및 그것에 정보를 추가로까지 얻을 수있어 :

System.out.println(employeeList.get(0).getEmployee()); 

인덱스 값이 정확해야하므로 나는 단지 하나 개의 요소를 추가 해요, 나는 너무 오래 전에 다른 자바 과정에서 ArrayLists와 협력하고 그 과제에 대한 내 코드에서 이와 비슷한 일을 할 수 있었다 . 이것에 대해 더 명확히 할 필요가 있다면 나는 행복 할 것이다. 물론, 이것에 대한 도움은 크게 감사하겠습니다.

+0

무엇이 오류입니까? – MadProgrammer

+0

스타일의 문제처럼 Java 클래스 이름은 일반적으로 대문자로 시작합니다 (class employee ... 대신 class Employee ...). –

+0

나는 밤에 이것에 대해 꿈꿔 본 후에 오늘 아침에 일어 났고 나는 그 잘못을 포기하지 않았다는 것을 깨달았다. "기호, 기호를 찾을 수 없습니다. getEmployee(); – morris295

답변

4

Java SE> = 5 인 경우 Generics을 사용해야하므로 ArrayList 대신 ArrayList<employee>을 사용해야합니다. 그렇지 않으면, 당신은 Object에서 Employee에 유형을 캐스팅해야 할 것 :

System.out.println(((employee)employeeList.get(0)).getEmployee()); 

또한, 자바 의 클래스 및 인터페이스 이름은 대문자로 시작해야합니다. employeeArray() 방법을 호출 할 때마다 새로운 ArrayList를 인스턴스화하려고

+0

이 응답을 보내 주셔서 감사합니다. 제안을 보내 주시면 코드를 성공적으로 컴파일 할 수 있습니다. – morris295

3
public ArrayList<employee> employeeArray(String name, double sales) 
{ 

    //Instantiate a new ArrayList object 
    ArrayList<employee> employeeList = new ArrayList<employee>(); 

    //Initialize the values in the ArrayList 
    employeeList.add(new employee(name, sales)); 

    return employeeList; 

} 
0

개봉. 공통점을 유지하고이 방법을 사용하여 요소를 추가하십시오. generics
를 사용하여 자바를 처음 사용하는 경우, 다음뿐만 아니라이 링크 읽습니까과

또한 1 : 당신은 당신이이 방법 employeeArray() 정의 EmployeeList라는 클래스를했습니다 가정 "Java Programming Style Guide (Naming Conventions)"

을, 또한

public class EmployeeList{ 
    private ArrayList<Employee> employeeList; 

    public EmployeeList(){ 
     //Initializing the employee arraylist 
     employeeList = new ArrayList<Employee>(); 
    } 

    public ArrayList<Employee> employeeArray(String name, double sales){ 
     //Initialize the values in the ArrayList 
     employeeList.add(new Employee(name, sales)); 

     return employeeList; 
    } 
} 

: (이 당신은 분명하다 당신의 필요에 맞게 오신 것을 환영합니다, 하나의 샘플 해결책이 참고) 다음과 같이 목록에 새 이름을 유지하기 위해 업데이트 할 수 있습니다 위의 코드에서 제네릭과 명명 규칙을 사용하십시오. 이것은 당신에게 도움이 될 수 있습니다.

+0

고마워,이 스레드의 모든 제안은 엄청난 도움이되었습니다. 또한 스타일 가이드에 대한 링크와 제네릭에 대한 조언을 주셔서 감사합니다. – morris295

관련 문제