728x90 java14 stream stream은 collection에 있는 데이터를 처리하는 모음이다. 따라서 컬랙션은 데이터를 가지고 있고 스트림은 이 데이터들을 사용해 어떠한 로직을 수행한다. 스트림은 스트림이 처리하는 데이터 소스를 변경하지 않는다. 1 2 3 4 5 6 7 8 9 10 public static void main(String[] args) { List names = new ArrayList(); names.add("keesun"); names.add("toby"); names.add("yunki"); names.stream() .map(String::toUpperCase) .forEach(System.out::println); } Colored by Color Scripter cs 위 코드에서 map을 사용한 직후의.. 2021. 11. 21. interface의 default method와 static method Java8부터 interface에 default method와 static method를 사용할 수 있게 되었다. Default method와 static method는 해당 interface를 implements하는 모든 인스턴스가 같은 기능이 있었으면 좋겠다는 이유로 추가되었다. 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 public interface Foo { /** * 이름을 출력하는 추상 메서드 */ void pri.. 2021. 11. 20. 함수형 인터페이스와 람다 표현식 함수형 인터페이스와 람다 표현식은 자바에서 함수형 프로그래밍을 할 수 있게 해주는 초석이다. 하지만 이들은 반드시 함수형 프로그래밍 만을 위해서 사용하라는 법은 없다. 함수형 인터페이스 추상 메서드가 하나만 존재하는 것이 함수형 인터페이스 이다. 1 2 3 4 public interface RunSomething { void doIt(); } cs 여기서 추상 메서드는 abstract가 생략되 있으므로 반드시 구현채를 구현해야 한다. 또 한 함수형 인터페이스는 default method, static method를 사용할 수 있다. 함수형 인터페이스를 구현할 때는 자바가 제공하는 @FunctionalInterface annotation을 사용한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 1.. 2021. 11. 20. Nested class, inner class class Outer{ class Nested{} } 위 코드에서 Nested클래와 같이 클래스 내부에 있는 클래스를 nested class라고 한다. 이때 nested class는 두 종류로 나뉜다. 1. Static nested class class Outer{ static class StaticNested{} } 2. Non-static nested class(inner class) class Outer{ class Inner{} } 그리고 inner class는 다음과 같은 세 종류로 나뉜다 1. Member Inner Class:멤버 변수와 같은 위치에 정의된 클래스 2. Local Inner Class:메서드 내에서 정의된 클래스 3. Anonymous Inner Class: 클래스 이름이 없.. 2021. 5. 5. 이전 1 2 3 4 다음 728x90