2013-03-21 1 views
0

여기 내 소유권 클래스의 일부입니다. 그것은 컴파일 오류를 가져 오지 않지만 다른 클래스와 함께 실행하고 올바른 입력을 넣으려고하면 addOwner()의 addElement() 행에 NPE가 표시되며 이유는 알 수 없습니다. OwnerParser은 문제가 아니며, 확실히 알고 있으며 입력도 아닙니다. 작은 프로젝트에서 Vector를 초기화하고 그 내용을 나열하려고 시도했지만 나에게도 NPE를주었습니다. 기본적으로 나는 NullPointerException을 얻지 않고 OwnerList에 새 Owner 객체를 추가하는 방법을 알아야합니다. Thanks.벡터에 대한 addElement()를 시도 할 때 NPE

import java.util.*; 
    import java.io.*; 

    public class Ownership implements Serializable 
    { 
     private Vector<Owner> ownerList; 
     private Vector<Pet> petList; 

     public void Ownership() 
     { 
      ownerList = new Vector<Owner>(); 
      petList = new Vector<Pet>(); 
     } 

    public boolean addOwner(String b) 
     { 
     Owner r = new Owner(); 
     r = OwnerParser.parseStringToOwner(b); 
     ownerList.addElement(r); 
       return true; 
     } 
    } 
+0

예외를 논의 할 때 스택 추적 pls를 제공하십시오. 'Owner r'은 null이거나, 당신의 경우'ownerList'는'null'이 될 수 있습니다. – Manuel

답변

2

기본 "생성자"는 void 반환 값이, 따라서 생성자와 같은 이름의 생성자하지만 일반적인 방법이 아닙니다. 결과적으로 "생성자"는 호출되지 않으며 벡터는 초기화되지 않습니다.

public void Ownership() {...}에서 public Ownership() {...}으로 변경하면 작동합니다.

+0

글쎄, 나는 바보 같아. 지금은 잘 작동합니다. 나를위한 두 얼굴 손바닥 –

관련 문제