2013-10-05 2 views
0

나는 다음과 같은 클래스를arraylist java에서 값을 가져 옵니까?

public class Patient implements Serializable { 

    private int id; 

    private String name; 

    private String desc; 
    public Patient(int id, String name, String desc) { 

    this.id = id; 
    this.name = name; 
    this.desc=desc; 
    } 

그리고이 클래스의 다음 getter와 setter 메소드가있다.

목록 이제

list.add(new Patient(id++, name.getText(), disDesc.getText()) 

에 ArrayList를

ArrayList<Patient> list = new ArrayList<Patient>(); 

추가 런타임 데이터를 선언 내가 원하는 내가 그렇게 할 수있는 방법 목록 에 저장된 요소를 읽어?

System.out.println(list.get(0)); 

나는 이것을 사용하지만 클래스 당신은 PatienttoString() 메소드를 오버라이드 (override) 할 필요가

+0

Eclipse 및 IntelliJ와 같은 대부분의 IDE는 클래스에 대한 toString 재정의를 자동으로 생성 할 수 있습니다. 최소한 템플릿으로 사용하십시오. –

답변

6

의 대상 주소를 반환합니다. 여기서 표시 할 Patient 오브젝트에 대한 모든 정보를 리턴합니다.

예 : (내 개인 좋아하는)

private static final String SEPARATOR = ", "; 

@Override 
public String toString() 
{ 
     StringBuilder builder = new StringBuilder(); 

     builder.append("ID: ").append(id).append(SEPARATOR); 
     builder.append("Name: ").append(name).append(SEPARATOR); 
     builder.append("Desc: ").append(desc); 

     return builder.toString(); 
} 

예 2 :

@Override 
public String toString() 
{ 
     return "ID: " + id + ", Name: " + name + ", Desc: " + desc; 
} 

예 3 :

@Override 
public String toString() 
{ 
     return MessageFormat.format("ID: {0}, Name: {1}, Desc: {2}", id, name, desc); 
} 

사용 중 하나. 그것은 선호의 문제입니다.

+2

"return"ID : "+ id +"| Name : "+ name +"| Desc : "+ desc; IMO를 읽기가 더 쉽고 효율적입니다. 또는'String.format'을 사용하십시오. –

+4

@JonSkeet 제 지식에 따르면,'StringBuilder'는 문자열을 연결하는 것보다 더 효율적입니다. 내가 잘못? 나는'StringBuilder'를 사용하는 습관을 개발했습니다. – GGrec

+0

당신의 개인적인 마음에 드는 것을 좋아했습니다 – WISHY

2
당신은 요소를 캐스팅해야

,

((Patient) list.get(0)).getName(); 

그리고 당신은 당신의 Patient 클래스에 공용 getter 메소드를 추가해야합니다.

관련 문제