String
, BigInteger
, BigDecimal
같은 기본 자료형의 래퍼 클래스 생성자를 사용하지 말아야합니다.
이렇게 사용하는 것은 valurOf
를 사용하는 것보다 의도가 불분명하고, 메모리를 더 많이 사용합니다.
규칙을 어긴 코드
String empty = new String(); // 규칙을 어긴 코드; ""을 반환하므로 그냥 ""을 사용하는게 낫습니다.
String nonempty = new String("Hello world"); // 규칙을 어긴 코드
Double myDouble = new Double(1.1); // 규칙을 어긴 코드; valueOf를 사용하세요
Integer integer = new Integer(1); // 규칙을 어긴 코드
Boolean bool = new Boolean(true); // 규칙을 어긴 코드
BigInteger bigInteger1 = new BigInteger("3"); // 규칙을 어긴 코드
BigInteger bigInteger2 = new BigInteger("9223372036854775807"); // 규칙을 어긴 코드
BigInteger bigInteger3 = new BigInteger("111222333444555666777888999"); // 규칙을 준수한 코드, Long.MAX_VALUE 보다 값이 커서 valurOf를 사용할 수 없습니다.
규칙을 준수한 해결책
String empty = "";
String nonempty = "Hello world";
Double myDouble = Double.valueOf(1.1);
Integer integer = Integer.valueOf(1);
Boolean bool = Boolean.valueOf(true);
BigInteger bigInteger1 = BigInteger.valueOf(3);
BigInteger bigInteger2 = BigInteger.valueOf(9223372036854775807L);
BigInteger bigInteger3 = new BigInteger("111222333444555666777888999");
예외
- BigDecimal 생성자에
double
을 넣는 경우valueOf
를 사용하라 하지 않습니다. (값을 왜곡할 수 있기 때문에) 참조 {rule:java:S2111}.
If you like SONARKUBE, don’t forget to give me a star.