스퐁지송 개발노트

22.12.02(불금) 자바안의 기본 람다 인터페이스 구현 본문

JAVA 입문 시작

22.12.02(불금) 자바안의 기본 람다 인터페이스 구현

강준석 2022. 12. 2. 17:10
728x90

자바안에 저장되있는 기본 람다 인터페이스를 구현해보자~

 

BiFunction

 

package 람다;

import java.util.function.BiFunction;
import java.util.function.BinaryOperator;
	//import해야 구현 가능

public class Main07 {

	public static void main(String[] args) {
		//BiFunction 따로 인터페이스를 만들지 않아도 자바에 기본으로 저장되있다
		
		BiFunction<Integer, Integer, Integer> bf = (a,b) -> a+b;
				// "BiFunction" 3개를 지정해 줘두됨
		System.out.println( bf.apply(5, 10));
		
		BinaryOperator<Integer> bo = (a,b) -> a + b;
			  //"BinaryOperator"1개만 지정해 줘두됨	
		System.out.println( bo.apply(5, 10));
				
	}

}

결과 15

 

package 람다;

import java.util.function.BiConsumer;
import java.util.function.BinaryOperator;
import java.util.function.Consumer;
import java.util.function.DoubleConsumer;
import java.util.function.ObjIntConsumer;

public class Main08 {

	public static void main(String[] args) {
		
		Consumer<String> c1 = (name) -> {
			System.out.println("이름 : "+name);
		};
		
		c1.accept("마스터이");
		
		BiConsumer<String, String> c2 = (ln,fn) -> {
			System.out.println("첫번째  : " + ln + " 두번째  : "+fn);
		};
		c2.accept("캡틴","티모");
		
		DoubleConsumer c3 = (s) -> {
			//제네릭 필요없음(실수들어감)
			System.out.println("입력받은 실수"+s);
		};
		c3.accept(80);
		//실수만 입력 받을 수 있어 소수점 나옴
		
		ObjIntConsumer<String> c4 = (a,b) ->{
			//obj는 어떤 형태든 들어갈 수 있음 첫번째형태만 설정
			System.out.println("첫번째 obj : " + a +" 두번째 int : " + b);
			
		};
		c4.accept("abd",123);	
	}

}

 

결과

 

이름 : 마스터이
첫번째  : 캡틴 두번째  : 티모
입력받은 실수80.0
첫번째 obj : abd 두번째 int : 123

 

매개변수가 없지만 리턴이 되는 것

package 람다;

import java.util.function.BooleanSupplier;
import java.util.function.IntSupplier;
import java.util.function.Supplier;

//매개변수 없고 리턴만 있다
public class Main09 {

	public static void main(String[] args) {
		
		Supplier<String> s1 = () -> "마스터이";
		System.out.println(s1.get());		
		
		IntSupplier s2 = ()->5;
		System.out.println(s2.getAsInt());
		
		BooleanSupplier s3 = () -> true;
		System.out.println(s3.getAsBoolean());
		
	}

}

 

 

 

728x90
Comments