2012-04-10 2 views
1

BufferedReader를 인스턴스 멤버 대신 정적 멤버로 사용하는 많은 Java 샘플이 있습니다. 가장 좋은 방법입니까? 언제해야합니까,하지 않아야합니까?System.in이 포함 된 정적 BufferedReader

+2

일부 예가 표시 될 수 있습니까? 그러한 협약은 없습니다. –

+0

실제로 ('BufferedReader'처럼)'static'을 사용하면 닫아야 할 객체를 만드는 것이 꽤 나쁜 생각입니다. – trutheality

답변

0

BufferedReader를 System.in과 함께 사용할 때 닫지 않아야하는 경우가 발견되었습니다. 이 경우 자바는 다시 열 수 없기 때문입니다. 이 시나리오에서는이 속성을 정적으로 선언하는 것이 좋습니다.

0

나는 BufferedReader을 정적 멤버로 만드는 것이 모든 종류의 표준이라고 생각하지 않습니다. 그것은 단지 당신이 원하는 행동에 달려 있습니다. 정적 인 방법으로 필드에 액세스해야하는 일종의 Utils 클래스에 있으면 정적으로 만듭니다. 그렇지 않으면 인스턴스 나 더 나은 메서드 수준 변수로 만들지도 않습니다. 예를 들어

, 일반적으로 봄, 최대 절전 모드, 그리고 자바 튜토리얼의 t를 기록 용인 묵 김, 그는 비 정적 방법으로 BufferedReader에 액세스 this 예제를 제공합니다.

0

나는 무엇보다 명확하게 정적 인 것으로 가정합니다. 나는 어떤 식 으로든하는 편이 낫다고 말하는 어떤 표준에 대해서도 잘 모르고있다. 나는 그것이 얼마나 자주 그리고 왜 그렇게 접근해야하는지에 달려 있다고 생각합니다.

2

몇 가지 모범 사례입니까?

확실히 아닙니다. 반대로 대부분의 경우 최악의 연습으로 간주됩니다. 정적 멤버는 신중하게 사용해야합니다. 구성원은 정당한 분석 후에 실제로 필요할 때 정적이어야합니다.

+0

그 저자는 일부 유틸리티 정적 루틴을 사용하여 'static void main'에서 BufferedReader에 액세스 할 수 있도록 단축키를 사용하고 있다고 생각합니다. –

+0

@AsadIqbal 관련 코드를 보지 않고도 추측 할 필요가 없습니다. – EJP

관련 문제