2013-12-16 4 views
3

저는 거의 항상 특정 값이 될 것입니다 코딩 오전 새 개체에 인스턴스 변수가 있습니다. 이 경우에는 "N"입니다. 문자열 인스턴스 변수에 기본값을 하드 코딩해도 괜찮습니까?인스턴스 변수의 기본값을 하드 코딩해도 괜찮습니까?

private String aBusinessSwitch= "N"; 

은 나중에하는 방법에 난 단지 몇 드문 경우에 "Y"로 값을 설정할 것 if 조건을 가지고있다.

은 내가 대신 필드를 선언 할 때 "N"의 기본 값이 BOOL을 설정 나의 if 문에 "N"

if (isCold) {aBusinessSwitch = "Y"; } 
    else {aBusinessSwitch = "N"; } 
+4

'문자열'은 몇 개의 값을 가질 수 있습니까? 어쩌면'문자열'이 적절한 유형이 아닐 수도 있습니다. –

+4

코드가 "문자열 형식"인 것처럼 보입니다. 왜 부울을 사용하지 않습니까? –

+0

일부 "하드 코드 된 문자열"포커스를 제거했습니다. 더 많이 제거 될 수도 있습니다. 질문은 대부분의 유형과 질문에 대해 동일 할 수 있습니다. * "필드를 선언 할 때 기본값을 지정하지 말고 설정하는 if 문에 else를 추가하는 것이 더 낫지 않습니까?"* – user2864740

답변

2

직접적인 대답은 '사실상 무제한의 다양한 값을 저장할 능력이 필요하지 않은 경우에는이 눈살을 찌푸리게됩니다.'입니다.

두 개 이상의 값이 필요합니까? 그렇지 않으면 부울을 고려하십시오. 그렇다면 enum을 고려하십시오. 무한 개수의 값이 필요하면 String을 사용하는 경우가 있습니다.

이 목적으로 문자열을 사용하도록 선택하면 프로그램이 완벽하게 작동 할 수 있습니다. 그러나 코드에 복잡성을 추가하고 모든 것이 잘못 될 수있는 기회가 많으며 앞으로 유지 관리의 어려움이 있음을 항상 염두에 두십시오.

2

사용 else을 추가하지 하드 코드 좋을 것이다 이 경우에는? 네 이상을 필요로하는 열거 형 & 아니오.

0

예 부울 또는 일반 인스턴스 변수 사용 열거 형은 많은 수의 값에 적합합니다.

1

다른 사람들은 "N"과 "Y"의 사용은 잘못된 유형 인 String에 대한 힌트이며 부울 또는 열거 형을 사용하는 것이 더 나은 선택 일 수 있습니다. 그러나 그것은 당신의 질문에 답하지 않습니다.

이 값이 두 위치에서 결정되는 방식을 논리로 분할하기 때문에 기본값을 사용하지 않을 것입니다. 한 곳에서만 설정하면이 장소가 생성자 안에 있으면 코드를 최종적으로 만들 수도 있으므로 코드를 좀 더 단순하게 만듭니다.

+0

+1 질문을 읽으십시오. – user2864740

관련 문제