이클립스 단축키 : new연산자의 대괄호{} 전체 선택 후 ctrl + 1 -> convert to lambda expression 를 선택하면 자동으로 람다식을 생성해준다.
2. 인터페이스 Comparator
객체정렬방식 2가지
Comparable 인터페이스 : 정렬 대상 클래스를 자바에서 기본적으로 제공하고 있는 Comparable 인터페이스를 구현하도록 변경
만약 이미 존재하고 있는 정렬 기준과 다른 정렬 기준으로 정렬을 하고 싶을 때는 어떻게 해야할까?
Comparator 인터페이스 : 정렬 기준을 누락된 클래스의 객체나 기존 정렬 기준을 무시하고 새로운 정렬 기준으로 객체를 정렬가능.
데이터타입별 비교방법
int 데이터타입은 부등호로 서로 비교가능
String은 부등호로 비교가 안됨 => compareTo()메서드사용해서 비교해야함
int compare(T o1, T o2) : Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
publicstaticvoidmain(String[] args)throws SecurityException, IOException { FileHandler fHandler = new FileHandler("mylog_%g.log"); logger.addHandler(fHandler); logger.log(Level.INFO, "INTO LOG"); logger.info("메서드 타입 인포 로그"); logger.warning("메서드 타입 경고 로그"); logger.severe("메서드 타입 시비어 로그"); }
}
//출력값 7월 23, 202011:11:40 오전 ch9.SimpleLoggingFile main 정보: INTO LOG 7월 23, 202011:11:40 오전 ch9.SimpleLoggingFile main 정보: 메서드 타입 인포 로그 7월 23, 202011:11:40 오전 ch9.SimpleLoggingFile main 경고: 메서드 타입 경고 로그 7월 23, 202011:11:40 오전 ch9.SimpleLoggingFile main 심각: 메서드 타입 시비어 로그
더불어 mylog_0.log파일이 생성되었다.
출력된 로그는 콘솔과 함께 파일에도 기록된다.
실무에서는 logging패키지의 클래스보다 주로 logback과 같은 별도의 로깅 프레임워크들을 사용함.
publicstaticvoidmain(String[] args){ //기본적인 interface구현(독립적인 클래스사용) Intf a = new A(); a.methodInf(); //익명클래스를 이용한 interface구현 Intf b = new Intf(){ @Override publicvoidmethodInf(){ System.out.println("익명클래스로 인터페이스 메서드 오버라이딩"); } }; b.methodInf(); } }