2012-06-24 2 views

답변

5

Jon Skeet의 답변이 정확합니다. 의 한 인스턴스를 얻으려면 System.console()을 사용해야합니다.

ConsoleSingleton design pattern의 구현이며, API 작성자가 하나의 클래스 인스턴스 만 생성하려고 할 때 사용됩니다.

+0

감사합니다. 왜 객체를 만들 수 없는지 궁금 해서요! –

+0

당신은 "Jon Skeet의 답변이 맞다"라고 쓰지 않아도됩니다 :) 대답입니다! –

+0

Heh, Jon Skeet은 내가하기 전에 대답했지만, Chandi가 왜 * 왜 * 같은지 이해할 수 있도록 조금 더 배경을 제공 할 것이라고 생각했습니다. 존의 대답을 반복 건방진 느낌! –

2

은 인스턴스를 직접 만들려면을 의미하지 않습니다. 대신, System.console() 방법을 사용

Console console = System.console(); 
1

당신은 콘솔 개체를 만들 수 없습니다를 생성자는 비공개입니다.

그러나이 방법으로 콘솔 개체를 얻을 수 있습니다 더 많은 정보에 대한 javadoc에서

Console console = System.console(); 

봐.

1

Console 클래스의 개체를 만들지 않아도됩니다. 필수는 아닙니다. 문서에서 아래를 참조하시기 바랍니다 :

를이 가상 머신이 다음이 System.console() 메소드를 호출하는 것으로 취득 할 수있는이 클래스의 고유 인스턴스로 표시되는 콘솔이있는 경우. 사용할 수있는 콘솔 장치가없는 경우 해당 메서드를 호출하면 null이 반환됩니다.

그래서 가상 장치에서 콘솔 장치를 사용할 수있는 경우 System.console() 콘솔을 가져옵니다.

0

생성자가 private 인 경우 콘솔을 명시 적으로 인스턴스화 할 수 없습니다. 다음과 같은 방법으로 JVM과 관련된 콘솔에 액세스 할 수 있습니다.

Console console = System.console(); 

설명서 here을 참조하십시오.

관련 문제