당신은 다음과 같습니다 http://developer.android.com/reference/java/io/PrintStream.html#print%28float%29Java PrintStream이 print() 함수를 오버로드해야하는 이유는 무엇입니까? 여기
그냥 하나 개의 기능은 모든 목적을 이룰 수 :
public void print (Object o) {
if (o == null) {
// print "null"
} else {
// print o.toString();
}
}
더 퇴고. 예를 들어, internal_print(String str)
은 인쇄 스트림에 쓰는 함수입니다. 그런 다음 필요한 유일한 기능은 다음과 같습니다
public void print (float o) {
if (o == null) {
internal_print("null");
} else {
internal_print(o.toString());
}
}
public void print (int o) {
if (o == null) {
internal_print("null");
} else {
internal_print(o.toString());
}
}
public void print (char o) {
if (o == null) {
internal_print("null");
} else {
internal_print(o.toString());
}
}
public void print (long o) {
if (o == null) {
internal_print("null");
} else {
internal_print(o.toString());
}
}
...
심지어 단지를 호출을 : 다른 float
, int
, char
, long
등 오버로딩, 나는 그들이 단지처럼 상상할 수에 대한
public void print (Object o) {
if (o == null) {
internal_print("null");
} else {
internal_print(o.toString());
}
}
살인자 기능 print (Object o)
.
설명해 주시겠습니까? 많은 감사합니다 !!
프리미티브는 'null'일 수 없으며'toString()'을 가지고 있지 않습니다! –
Ooops 좋은 장소 (Y) 그게 내 잘못이고 오타. 그러나 함수 매개 변수에서'((Object) an_int) '로 형변환 된 후에는 null과 toString()을 검사 할 수 있습니다. – midnite
프리미티브는 객체가 아닙니다. 객체로 사용할 수 없습니다. – MathSquared