2014-12-30 3 views
0

생성자에 문제가 있습니다. 나는 자바를 잃어 버리고, 당신의 입력을 인식하는 프로그래머를 만들려고 노력하고있다. null로 null을 설정하고 null을 null로 설정하는 것처럼 int를 null로 설정하는 방법을 모르겠습니다.생성자에서 int를 0으로 설정

public Osebo(String Name,String Surname){ 
    this(Name,Surname,(String)null,_________,(Date)null) 
} 
public Osebo(String Name,String Surname,int old){ 
    this(Name,priimek,(String)null,starost,(Date)null); 
} 
public Osebo(String ime,String priimek,String naslov,int starost){ 
    this(ime,priimek,naslov,starost,(Date)null); 
} 

public Osebo(String ime, String priimek, String naslov, int starost, Calendar datum) { 
    this(ime,priimek,naslov,starost,datum.getTime()); 
} 

public Osebo(String ime, String priimek, String naslov, int starost, Date datum) { 
    this.ime = ime; 
    this.priimek = priimek; 
    this.naslov = naslov; 
    this.starost = starost; 
    this.datum = datum; 
} 
+0

'int'를 'null'로 설정할 수 없습니다. 0으로 설정하십시오. –

+0

'int'는 기본적으로 0으로 설정되어 있으므로 명시 적으로 설정할 필요가 없습니다. – peterremec

답변

3

int은 프리미티브이다. null이 될 수 없습니다. 대신 null을 할당 할 수있는 Integer을 사용할 수 있습니다.

int을 계속 사용하려면 값이없는 것을 나타내는 기본값을 선택하십시오. 예를 들어, 해당 변수의 유효한 값이 음수가 아닌 경우 -1을 사용하여 작업 할 수 있습니다.

+0

감사합니다. – Swanson

+0

@Swanson 오신 것을 환영합니다! – Eran

0

형식 변수를 null로 설정하려면 Java 프리미티브를 래퍼 클래스 대신 null로 설정할 수 없습니다. 그리고 객체에 null을 캐스트 할 필요가없는 또 하나의 것은 객체 참조에 null을 직접 할당 할 수 있다는 것입니다.

0

그럼 자바에 따르면 에서 null까지 설정할 수 없습니다. 프리미티브가 하나의 값인 0 인 것처럼 설정하기 때문입니다. 그것은 기본적으로입니다. 하지만 null으로 설정할 수는 없습니다.

0

기본적으로 null을 알고 있다고 가정하면 "모든 개체를 가리 키지 않습니다"라는 의미입니다. 따라서 참조 변수가 객체를 가리 키기 때문에 참조 변수 만 null로 설정할 수 있습니다. Int는 객체가 아닌 원시 데이터 유형입니다. 기본값으로 0을 설정할 수 있습니다. 하지만 실제로 int의 객체 래퍼를 원한다면 대신 Integer를 사용하십시오.

1

프리미티브에는 null을 할당 할 수 없습니다. 기본값 (예 : -1)을 설정하거나 Integer로 감쌀 수 있습니다.

관련 문제