는 내 교수는 한 번 다음과 같은 코드가 수행해서는 안됩니다 말했다 :System.out.println() 내에서 toString() 메서드를 두 번 호출 하시겠습니까?
에서 System.out.println을 Object.toString (());
그가 말했듯이 (나는 "효과적 Java"라고 언급했다) 그는 이중 호출을 야기한다고 말했다. print 문은 객체의 toString 메서드를 호출하기 때문에 toString 메서드를 두 번 호출하는 것이 덜 효율적입니다. 선호되는 방법은 다음을 사용하는 것입니다 :
System.out.println (object);
분명히이 방법은 코드가 좋아 보이며 시간을 절약 할 수 있습니다. 내가 상관없이이 일을 항상 하겠지만, 나의 질문은 "이것이 실제로 더 효과적입니까?"입니다. PrintStream 문서를 살펴보면 print 메소드가 오버로드되어 String을 매개 변수로 사용합니다 (toString 메서드가 먼저 호출 된 경우). print 메소드의 해당 버전이 입력 된 매개 변수의 toString 메소드를 호출하는 곳을 보지 못하고 있으며이를 수행하는 것이 타당하지 않을 것이라고 생각합니다.
또한이 사본이 중복 된 경우 죄송합니다. 내가 그것에 대한 주제를 찾을 수 없습니다.
+1 좋은 질문입니다. 좋은 연구. – iamnotmaynard
더 중요한 것은,'println'에 대한 호출은'toString'에 대한 호출보다 훨씬 더 많은 시간이 걸리므로 이것은 거의 부적절한 것입니다. – assylias