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

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

Susan Sarandon
Susan Sarandon원래의
2024-10-17 22:10:05638검색

1. 다른 데이터 유형 대신 문자열을 사용하지 마세요.

문자열은 텍스트를 나타내기 위해 설계되었지만 숫자, 열거형 또는 집계 구조를 나타내는 데 오용되는 경우가 많습니다.
데이터가 본질적으로 숫자인 경우 문자열이 아닌 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<String, Object> threadLocalVariables = new HashMap<>();
threadLocalVariables.put("myVariable", value);

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

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

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

ThreadLocal의 올바른 사용:

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

ThreadLocal의 올바른 사용 예:

private static final ThreadLocal<Integer> 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

위 내용은 항목 다른 유형이 더 적합한 문자열은 피하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.