Java 13

제네릭 메서드

제네릭 메서드의 작성법은 제네릭 타입 작성법과 비슷하다. 아래는 두 집합(Set)의 합 집합을 반환하는 문제가 있는 메서드다. public static Set union(Set s1, Set s2) { Set result = new HashSet(s1); // Type safety : unchecked call... 경고 result.addAll(s2); // Type Safety.. return result; } 컴파일은 되지만 경고가 발생한다. 메서드를 타입 안전하게 만들어야 경고가 사라진다. 메서드 선언에서의 세 집합(입력 2개, 반환 1개)의 원소 타입을 타입 매개변수로 명시하고, 메서드 안에서도 이 타입 매개변수만 사용하게 수정하면 된다.타입 매개변수의 목록은 메서드의 제한자와 반환 타입에서 온..

Java 2020.07.14

@NotNull @NotEmpty @NotBlank 차이

Bean Validation API의 NotNull, NotEmpty, NotBlank의 차이에 대해 설명한다. @NotNull The annotated element must not be null. Accepts any type. 모든 타입에 대해 null을 허용하지 않는다. @NotEmpty The annotated element must not be null nor empty. Supported types are: CharSequence (length of character sequence is evaluated) Collection (collection size is evaluated) Map (map size is evaluated) Array (array length is evaluated) ..

Java 2020.03.04

람다 (Lambda)

람다 람다 표현식이란 클로져(Closures)나 익명 함수, 익명 메서드(anonymous methods, anonymous functions)로 알려져있다. 다시 말해 자바에서는 익명 메서드를 나타내기 위한 표현식(expression)이라 생각하면 된다. (int x, int y) -> x + y () -> 42 (String s) -> { System.out.println(s); } 첫번째 식은 매개변수로 x, y를 받고 x, y의 합을 반환한다 두번째는 integer 42를 반환한다. 마지막은 매개변수로 String s를 받고 그것을 콘솔에 출력, 아무것도 반환하지 않는다. 일반적인 문법은 매개변수들, ->(화살표) 그리고 body로 이루어진다. body는 단독으로 표현 하거나 { } 중괄호 블럭으..

Java 2020.02.18