"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 항목 다른 유형이 더 적합한 문자열은 피하세요.

항목 다른 유형이 더 적합한 문자열은 피하세요.

2024-11-02에 게시됨
검색:169

1. 다른 데이터 유형의 대체물로 문자열을 사용하지 마십시오:

문자열은 텍스트를 나타내기 위해 설계되었지만 숫자, 열거형 또는 집계 구조를 나타내는 데 오용되는 경우가 많습니다.
데이터가 본질적으로 숫자인 경우 String이 아닌 int, float 또는 BigInteger와 같은 유형을 사용하십시오.

String age = "30";  // incorreto
int age = 30;       // correto

2. 문자열은 열거형 유형을 대체하기에 적합하지 않습니다:

열거형 값을 표현하기 위해 문자열을 사용하는 것보다 열거형을 사용하는 것이 더 안전하고 읽기 쉽습니다.

String status = "ACTIVE";  // incorreto
Status status = Status.ACTIVE;  // correto, usando enum

3. 문자열은 집계 유형에 대한 열등한 대체물입니다:

복잡한 데이터를 구분 기호로 구분된 단일 문자열로 표현하면 오류 및 유지 관리 문제가 발생할 수 있습니다. 이 데이터에 대한 클래스를 만드는 것이 좋습니다.

잘못된 예(집계된 데이터를 나타내기 위해 문자열 사용):

String personData = "John|Doe|30";

올바른 예(클래스 사용):

class Person {
    String firstName;
    String lastName;
    int age;

    // Construtor e métodos adequados
}

4. 리소스 대체 문자열(예: 스레드 지역 변수):

문자열을 사용하여 리소스를 스레드 로컬 변수로 식별하면 보안 문제 및 이름 충돌이 발생할 수 있습니다. 더 안전한 키로 교체하세요.

잘못된 예(스레드 지역 변수를 식별하기 위해 문자열 사용):

Map threadLocalVariables = new HashMap();
threadLocalVariables.put("myVariable", value);

올바른 예(보안 키 사용):

class Key {
    // implementação da chave
}

Map threadLocalVariables = new HashMap();
Key key = new Key();
threadLocalVariables.put(key, value);

ThreadLocal의 올바른 사용:

스레드 로컬 변수에 대한 이상적인 설계에는 유형이 안전한 방식으로 각 스레드와 연관된 변수를 생성할 수 있는 ThreadLocal의 사용이 포함됩니다.

ThreadLocal의 올바른 사용 예:

private static final ThreadLocal threadId = ThreadLocal.withInitial(() -> 0);

public static void main(String[] args) {
    System.out.println(threadId.get());  // obtem o valor da variável local da thread
}

결론:

모든 것에 문자열을 사용하려는 유혹을 피하십시오. 보다 적절한 데이터 유형을 사용하거나 새로운 유형을 생성하면 오류를 방지하고 가독성을 높이며 코드를 더욱 효율적이고 안전하게 만들 수 있습니다.

책의 예:

Item  Evite as strings onde outros tipos forem mais adequados

Item  Evite as strings onde outros tipos forem mais adequados

릴리스 선언문 이 기사는 https://dev.to/giselecoder/item-62-evite-as-strings-onde-outros-tipos-forem-mais-adequados-2o63?1에서 복제됩니다. 침해가 있는 경우에는 Study_golang에 문의하세요. @163.com 삭제
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3