본문 바로가기

언어/Java9

[Java] record type jdk 14 버전 이후부터 제공되는 데이터 타입. class 형태중 불변 class로 정의할 때 사용된다. 즉 해당 클래스는 생성자와 getter(), toString() 메소드를 포함하고 있는 형태라고 볼수있다. 기존의 불변객체 정의 public class Test { private final String name; private final String contents; public Test(String name, String contents) { this.name = name; this.contents = contents; } public String getName() { return name; } public String getContents() { return contents; } } record.. 2022. 12. 6.
[Java] KST 시간변환 KST 시간예시 Sat Jan 01 00:00:00 KST 2022 변환방법 SimpleDateFormat 을 이용. 여기서 중요한점 KST 포멧을 받을 SimpleDateFormat 과 원하는 포멧으로 바꿀 SimpleDateFormat 두가지가 필요하다. @Test public void dateFormatTest() throws JSONException, ParseException { String date = "Sat Jan 01 00:00:00 KST 2022"; SimpleDateFormat recFormat = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy",Locale.ENGLISH); SimpleDateFormat sdf = new SimpleDateFo.. 2022. 8. 16.
[JUnit5] 테스트 코드 시작해보기 - 2 태깅/ 필터링 @Tag 어노테이션을 이용하여 메서드 태깅이 가능하다. `@Tag("태그명")` 테스트 사용하기 Intellij 기준 Test Configuration 에서 테스트 사용할 태그명 입력 가능하다. class TestServiceTest { @Test @Tag("do") void test(){ System.out.println("do"); } @Test @Tag("not") void test2(){ System.out.println("not"); } } maven or gradle 설정을 통해 build 할때 진행되는 테스트 커버리지 설정도 가능하다. maven maven-surefire-plugin do gradle // 해당 테스트 미포함 tasks.named('test') { useJUn.. 2022. 7. 15.
[JUnit5] 테스트 코드 시작해보기 - 1 JUnit5 사용환경 : Java8 이상 구성 Platform : 테스트 실행런처 제공 (TestEngine API 제공) Jupiter : TestEngine API 구현체 Vintage: JUnit4,3 지원 구현체 JUnit 의존성 추가 2.2+ 버전의 스프링 부트 프로젝트를 만든다면 기본적으로 JUnit5 가 추가되어 있다. 그외 hamcrast, mokito등 라이브러리가 아래 dependancy에 포함되어 있다. dependencies { ... testImplementation 'org.springframework.boot:spring-boot-starter-test' } JUnit5 기본 포멧 인텔리제이 기준 테스트 하려는 컴포넌트 이름에 커서를 둔후 ALT+Enter 를 누르면 아래 사진.. 2022. 6. 15.
[Java] 컬랙션 프레임워크 커스텀 정렬 자바 Collection Framework 정렬하기 객체에 Comparable 인터페이스 상속받아 정렬 사용자가 정의한 객체에서 Comparable 인터페이스를 상속받 compareTo 메서드를 구현함으로써 사용자가 정의하는 정렬 기준을 정할 수 있다. 아래의 예시에서는 두개의 int 필드를 갖는 객체가 number1을 우선 기준으로 정렬한뒤 number2를 기준으로 정렬하는 형태로 정의하였다. 사용할 객체​ class myObject implements Comparable { String name; int number1; int number2;​ public myObject(String name, int number1, int number2) { this.name = name; this.number1 .. 2020. 9. 18.