2013-07-30 2 views
-2

유형 (클래스) Person의 arrayList에서 두 번째 객체를 가져와 특정 객체에 메서드를 적용 할 수 있습니까?ArrayList 내에서 객체 업데이트

ArrayList<Person> person = new ArrayList<Person>(); 

예 : 나는 사람 클래스에 hasBirthday()라는 메서드를 가지고 있는데,이 메서드는 객체 사용자에게 1 년을 추가하지만 생성 된 두 번째 Object에만 적용됩니다. 이것은 생일 축하 메시지를 표시하고 콘솔에서 두 번째 객체가 생성 된 후 1 년을 추가하기위한 것입니다. 우리가 생일을 좋아 결국)

+0

코드를 게시 할 수 있습니까? –

+3

"만든 두 번째 개체에만 적용"이란 무엇을 의미합니까? (나는 상태를 변형시키는'hasBirthday' 메소드를 설계하는 지혜에 의문을 제기한다. 단지 * 체크하고 무언가를 리턴하고 대답을 리턴한다.) –

+0

배열에 두 번째 오브젝트가 있으면 hasBirthday 메소드는 추가로 한 해 (나이)까지 객체를 업데이트하고 사용자가 변경 사항을 알 수 있도록하는 메시지. 네, 두 번째 객체에 대한 프로그램에 대한 응답 및 변경 사항에 대한 사용자에게 알리는 것과 다소 차이가 있습니다. – Sun

답변

1

나는 당신이 의미 믿습니다

person.get(1).hasBirthday(); 
존재하는 경우 (목록의 두 번째 객체에 hasBirthday 메소드를 호출합니다

).

if(person.size() >1 && person.get(1) != null){ 
    person.get(1).hasBirthday(); 
} 

이것은 List 적절한의 길이가 확인하고 해당 인덱스의 값은 null되지 않습니다 :

+0

좋아요! 나는 person.get (1)과 가까웠다. 내가 어떻게 관리하는지보기 위해 나머지를 시험해 보자. 감사! – Sun

+0

예, 작동합니다! 다시 한번 감사합니다! – Sun

+1

다행이다. 다음 번에는 "java arraylist"와 같이 도움이 필요한 구조/메소드 만 검색하는 것이 좋습니다. Java의 문서화는 매우 풍부하고 거의 항상 도움이됩니다. – 3yakuya

0
ArrayList<Person> person = new ArrayList<Person>(); 
person.add(new Person(someParam1)); 
person.add(new Person(someParam2)); 
person.add(new Person(someParam3)); 

if (person.size() >= 2) { 
    Person secondPerson = person.get(1); 
    secondPerson.hasBirthday(); 
} 
+0

사용자가 콘솔에서 정보를 추가하고 어레이가 정보를 업데이트한다는 것입니다. 마지막 부분은 제가 찾고 있던 부분이었습니다. 답변 해주셔서 감사합니다! – Sun

0

여기에 해당 할 수있는 안전한 방법입니다.

hasBirthday 메서드의 이름을 increaseAge 또는 예를 들어 할당 할 나이가 setAge 인 나이를 할당하는 설정자로 바꿉니다. 설명적인 메소드 이름이 유용합니다.

+0

예, 몇 가지 변경 사항에 전적으로 동의합니다. 나는 .has 생일 파티를 놓치고 있었다. 답변 해주셔서 감사합니다! – Sun