printf
메서드의 구현을 PrintStream
클래스에서 살펴 보았을 때, 나는 같은 클래스에서 format
메서드를 호출하는 것입니다. 난 당신이 format
메소드를 호출 할 때 printf
방법을 필요했던 이유를 찾으려고 할 때 PrintStream 클래스가 printf 및 format 메서드를 동일한 방식으로 사용하는 이유는 무엇입니까?
public PrintStream printf(String arg0, Object... arg1) {
return this.format(arg0, arg1);
}
public PrintStream printf(Locale arg0, String arg1, Object... arg2) {
return this.format(arg0, arg1, arg2);
}
, 내가 가진 모든 이들이 정확히 동일한 방식으로 행동
을 의미 대답했다. 둘 다 같은 클래스의 구성원 인 경우
, 둘 다public
그들 모두 1.5Java
에 추가되었습니다되어, 다음 왜 printf
방법은 정의?
나는'format' 메소드가 정의 된 이유는 무엇입니까? 나에게 "format"이라는 이름은 인쇄를 의미하는 것이 아니라 "printf"를 의미하고,'printf'는 상응하는 [C method] (http://www.cplusplus.com/reference/cstdio/printf/)와 아주 비슷하게 일치합니다 기능. 'String.format()'은 결과를 형식화하고 * 반환하기 때문에 의미가 있습니다. 'PrintStream.printf()'는 형식화 된 문자열을 출력하기 때문에 의미가 있습니다. 그것들을 감안할 때'PrintStream.format()'은 그 효과를 혼란 스럽거나 오해의 소지가 있습니다. 적어도 직감적이지는 않습니다 *. – Andreas
@Andreas, 정확히! 문제는 다른 사람을 호출 할 때 두 가지 방법이있는 이유입니다. – Yogesh
자연이 고양이와 ** 개를 발명 한 이유는 무엇입니까? 그들은 모두 육식 동물입니다. 확실히 그 종 중 하나는 불필요합니다! –