프로그래밍언어/Java&Servlet(26)
-
Java - Inner Class Json parse(can only instantiate non-static inner class by using default no-argument constructor)
RestTemplate으로 다른 API를 호출하고 특정 객체 타입으로 JSON을 parsing 하는 상황이었다. 그런데 해당 특정 객체는 내부적으로 Inner Class를 가지고 있는 상황이었는데, 아래와 같은 예외가 발생하였다. 예외:can only instantiate non-static inner class by using default no-argument constructor 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 @Getter @Setter @ToString public class Outer { @Getter @Setter @ToString @NoArgsConstructor public c..
2019.06.13 -
Java - lambda(람다) 간단한 사용법 !
Java - lambda(람다) 간단한 사용법 !람다란 무엇일까? 람다(lambda)란 간단하게 표현하면 메서드에 전달 가능한 함수형 인터페이스의 구현체이다. 그럼 여기서 함수형 인터페이스란 무엇인가? 함수형 인터페이스는 하나의 메소드만 선언되어 있는 인터페이스를 함수형 인터페이스라고 부른다. 이것의 예제 소스코드를 보면, 1234@FunctionalInterfacepublic interface Callable { V call() throws Exception;}cs이것은 java.util.concurrent의 Callable 인터페이스이다. 이러한 인터페이스를 함수형 인터페이스라고 부른다. (@FunctionalInterface 어노테이션을 붙이면 이 인터페이스가 함수형 인터페이스 조건에 어긋나면 예외..
2019.03.10 -
Java - Collections.rotate() 란?
Java - Collections.rotate() 란? 만약 List 객체에 [1,2,3,4,5] 요소들이 들어있다고 생각해보자. 여기에서 Collections.rotate(list,2) 메소드를 호출한다면 맨뒤의 요소를 하나씩 두번꺼내서 맨앞 요소자리에 넣고 다른 요소들은 뒤로 한칸씩밀리게 되는 것이다. 이것을 Step으로 표현하면 12345678910@Testpublic void CollectionsRotate(){ List list = new ArrayList(); list.addAll(Arrays.asList(new Integer[] {1,2,3,4,5})); Collections.rotate(list, 1); System.out.println(Arrays.toString(list.toArray(..
2019.02.25 -
Java - ThreadLocal 이란? 쓰레드로컬 사용법!
Java - ThreadLocal 이란? 쓰레드로컬 사용법! ThreadLocal(쓰레드로컬)이란? 쓰레드로컬이란 간단히 얘기하면 하나의 스레드의 작업 흐름동안에 전역변수처럼 무엇인가를 저장하여 사용할수 있다. 일반 변수의 수명은 특정 코드 블록(예, 메서드 범위, for 블록 범위 등) 범위 내에서만 유효하다. { int a = 10; ... // 블록 내에서 a 변수 사용 가능 } // 변수 a는 위 코드 블록이 끝나면 더 이상 유효하지 않다. (즉, 수명을 다한다.) 반면에 ThreadLocal을 이용하면 쓰레드 영역에 변수를 설정할 수 있기 때문에, 특정 쓰레드가 실행하는 모든 코드에서 그 쓰레드에 설정된 변수 값을 사용할 수 있게 된다. 아래 그림은 쓰레드 로컬 변수가 어떻게 동작하는 지를 간단..
2019.02.21 -
Java - You need to run build with JDK or have tools.jar on the classpath 오류
Java - You need to run build with JDK or have tools.jar on the classpath 오류 You need to run build with JDK or have tools.jar on the classpath. If this occures during eclipse build make sure you run eclipse under JDK as well (com.myseam.maven:apt-maven-plugin:1.1.3:process:default:generate-sources) 만약 위와 같은 에러가 pom.xml에 났다면? project folder 우클릭 > Properties > Java Build Path > Libraries Tab 에서 JRE..
2019.02.14 -
Java - ConnectionTimeout,ReadTimeout,SocketTimeout 차이점?
Java - ConnectionTimeout,ReadTimeout,SocketTimeout 차이점? 사실 지금까지 웹개발을 해오면서 ConnectionTimeout,ReadTimeout,SocketTimeout에 대해 대략적으로만 알고있었지 사실 정확히 설명해봐라 혹은 차이점을 설명해봐라하면 대답하기 힘든 부분이 있었다. 이번 포스팅으로 정확한 타임아웃 개념을 잡아보려고한다. ConnectionTimeout이란? ConnectionTimeout이라는 개념을 설명하기 전에 URL로 HTTP호출을 할 때 어떤 방식으로 수행되는지 이해가 필요하다.웹 브라우저가 네이버 서버에 접속하기 위해서 서버와 연결된 상태가 되어야한다. 보통 연결을 구성하기위해TCP Connection과 동일하게 3-way-HandShak..
2019.02.12