본문 바로가기

Java

java 열거형 enum 업무활용 Enum 이란? Enum은 열거형 상수이다. 연관된 상수의 집합을 뜻한다. 기존에 final static int .. 등으로 사용하던 상수를 enum을 활용하여 사용할 수 있다. 장점. 일반 클래스의 경우 상수값 변경시 상수를 참조하는 소스를 재 컴파일 해야함. 열거형 상수는 참조하는 소스를 재 컴파일하지 않아도 된다. 열거형 상수간 비교는 == 를 사용할 수 있음. equals 가 아닌 == 로 비교가능한건 그만큼 빠르다는 것임. 하지만 비교연산자 >, cs enum역시 class이고 class로 표현시 아래와 같음. class CoffeeMenu { static final CoffeeMenu AMERICANO = new CoffeeMenu("AMERICANO"); static final CoffeeM.. 더보기
Java Functional Interface BiPredicate 활용. BiPredicate : boolean test(T t, U u) : input 2개 return boolean BiPredicate는 funtional 인터페이스중 하나이다. 기본사용법은 Predicate와 동일하지만, 인자값이 하나더 있다. 외에도 매개변수가 2개인 함수형 인터페이스로는 BiConsumer, BiFunction 등이 있다. BiPredicate는 Predicate interface와 사용법이 거의 비슷하여, 대략적으로 이해만 하고 있었는데 실제로 활용을 해보려고 하니 어떠한 경우에 사용해야할지 감이 잡히지 않았다. 그래서 인터넷의 다른소스들을 참고하여 비슷하고 간단한 예제를 하나 만들어보도록 하겠다. 만약 사용자들의 정보가 담긴 List가 있다고 가정한다. List에는 이름(name).. 더보기
FlatMap 사용 스트림의 스트림을 스트림으로 변환 Stream -> Stream flatMap은 Array 또는 Object로 감싸져 있는 모든 원소를 단일 원소 스트림으로 반환해준다. List 안의 요소에 Collection 값을 가지는 경우 flatMap을 이용하여 간단히 Collection 값을 가져올 수 있음. 테스트를 위해 다음과 같은 객체를 생성한다. User Class public class User { private String name; private int age; public User(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void .. 더보기
Map에서 값을 가져올때 Optional을 이용한 Null처리 Old Version Map map = new HashMap(); if (null != map) { String nameOld = StringUtils.defaultString(map.get("NAME")); System.out.println("nameOld:" + nameOld); } Optional 이용하여 Null처리 String nameNew = Optional.ofNullable(map).map(v -> v.get("NAME")).orElse(""); System.out.println("nameNew:" + nameNew); String 값 Null처리시 보통 StringUtils를 사용했지만, Optional로 처리해봄. String apprType = null; String optionalS.. 더보기
Interface java8에서 추가된 기능 Interface도 method body를 가질수 있게 되었다. default 메소드와 static 메소드. interface 에서 default 메소드 구현가능.(N개) - implements 하여 상속받은 하위 클래스에서 호출가능. - implements 하여 상속받은 하위 클래스에서 메소드 재정의 가능. - 참조하는 변수로 함수를 호출가능. interface 에서 static 메소드 구현가능.(N개) - 인터페이스명으로 호출가능. - 메소드 재정의 불가능. @FunctionalInterface public interface Java8Interface { public int add(int a, int b); default void defaultMethodA() { System.out.println(".. 더보기
이클립스 문자열 검색시 검색 문자열에 줄내림 또는 공백문자열이 포함된 경우 검색방법 예를들어 USER_TABLE 이라는 테이블의 INSERT 문을 모두 검색하고자 할때 이클립스 검색창에 검색어를 INSERT INTO USER_TABLE 으로 검색하면 될것이다. 하지만 INTO 와 USER_TABLE 사이에 공백이 있거나 줄내림이 있는 경우는 검색되지 않았다. (쿼리에 공백과 줄내림을 남발한경우ㅡㅡ;;) 이때 공백과 줄내림을 포함하여 검색하는 방법이다. 예로 아래의 4가지 파일을 생성하였다. query1.sql 기본적인 INSERT QUERY query2.sql 검색하고자 하는 문자열 사이에 공백문자열 N개 존재 query3.sql 검색하고자 하는 문자열 사이에 줄내림과 공백문자열 N개 존재 query4.sql 검색하고자 하는 테이블만 검색이 되는지 확인하기 위해 다른 테이블 INSERT.. 더보기
이클립스 Git Branch 생성, 삭제 및 Stash 사용법 1.이클립스에 프로젝트가 하나 있다고 가정합니다. 이름은 [MSProject] 현재 Branch 는 master branch 만 존재한다. MSProject 프로젝트에 새로운 Branch를 생성해보자. 2.이클립스 좌측에서 MsProject 에서 마우스 우클릭 > Team > Switch To > New Branch 선택한다. 3.새로 생성할 Branch 명을 입력후 [Finish] 버튼을 클릭한다. 필자는 workingBranch 라는 Branch 명을 입력하여 생성하였다. 4.아래 그림(오른쪽 참고) master Branch 하위에 workingBranch 가 새로 생성 되었다. 5.아래 그림과 같이 Git Repositories 에서 workingBranch 을 클릭 후 마우스를 우클릭하여 Remo.. 더보기