파라미터 값으로 null을 주더라도 절대 NullPointException을 발생시키지 않는다.
dependency를 추가하여 사용한다.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8</version>
</dependency>
isEmpty(문자열) - null 체크, 길이 체크
String sText1 = "";
String sText2 = null;
String sText3 = "DevLog";
System.out.println(StringUtils.isEmpty(sText1)); //true
System.out.println(StringUtils.isEmpty(sText2)); //true
System.out.println(StringUtils.isEmpty(sText3)); //false
abbreviate(문자열, 보여줄 문자 개수(... 포함)) - 문자열 축소 시 사용
보여줄 문자 개수는 4 이상 이어야 한다.
String sText1 = "DevLogStringUtilsTest";
String sText2 = "Dev";
System.out.println(StringUtils.abbreviate(sText1, 9)); //DevLog...
System.out.println(StringUtils.abbreviate(sText2, 9)); //Dev
System.out.println(StringUtils.abbreviate(sText2, 3)); //ERROR - 보여줄 문자열의 수는 4이상이어야함
capitalize(문자열) - 첫 글자 대문자
String sText1 = "devlog";
System.out.println(StringUtils.capitalize(sText1)); //Devlog
contains(문자열, 비교할 문자열) - 문자열 안에 비교할 문자열이 있는지 확인
String sText1 = "DevLog";
System.out.println(StringUtils.contains(sText1, "Dev")); //true
System.out.println(StringUtils.contains(sText1, "dev")); //false
equalsAny(문자열, 비교할 문자열...) - 문자열과 비교할 문자열들 중 같은 것이 존재하는지 확인
String sText1 = "DevLog";
System.out.println(StringUtils.equalsAny(sText1, "D", "Dev", "Log")); //false
System.out.println(StringUtils.equalsAny(sText1, "D", "Dev", "Log", "DevLog")); //true
startsWith(문자열, prefix) - 문자열의 prefix를 확인
String sText1 = "DevLog";
System.out.println(StringUtils.startsWith(sText1, "Dev")); //true
System.out.println(StringUtils.startsWith(sText1, "log")); //false
스프링에서 기본으로 제공해주는 메소드로서 객체를 쉽고 간결하게 복사할 수 있게 해 준다.
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.3.21</version>
</dependency>
spring-beans 라이브러리에 포함되어있다.
import 할 때 [apache.commons.beanutils.BeanUtil]과 착각하는 일이 없도록 하자.
copyProperties(원본 객체, 복사할 객체)
DevLog orginalClass = new DevLog("홍길동", 20);
DevLog targetClass = new DevLog();
BeanUtils.copyProperties(orginalClass ,targetClass);
System.out.println(targetClass.getName()); //홍길동
System.out.println(targetClass.getAge()); //20
copyProperties(원본 객체, 복사할 객체,... 복사하지 않을 필드명)
DevLog orginalClass = new DevLog("홍길동", 20);
DevLog target2Class = new DevLog();
BeanUtils.copyProperties(orginalClass ,target2Class, "name");
System.out.println(target2Class.getName()); //null
System.out.println(target2Class.getAge()); //20
copyProperties는 언제 사용하면 좋을까
원본 객체를 복사할 때 원본 객체의 필드가 많은 경우에 사용하면 효율적이다. 물론 하나하나 setter로 값을 설정해도 된다.
이 경우 코드의 양도 방대해지고 무엇보다 번거롭다. 매우 비효율 적이고 가독성 또한 좋지 못하다.
필자는 개발의 가독성이 매우 중요하다 생각한다. 내가 작성한 코드를 언젠가는 다른 사람이 보는 경우가 생긴다라는 것을 인식하자.
[JAVA] Set 사용법 (0) | 2022.07.15 |
---|---|
공공데이터 포털 REST API - 결과값 JSON to Array (0) | 2022.07.14 |
[JAVA] - 람다식(Lambda Expressions) (0) | 2022.07.07 |
Enum 메소드 및 활용 (0) | 2022.06.21 |
Enum 장점 (0) | 2022.06.20 |
댓글 영역