package oop.InnereKlassen;

import java.util.ArrayList;
import java.util.function.*;

public class Main {

	public static void main(String[] args) {
		ArrayList<Integer> t = new ArrayList<>();
		t.add(12);
		t.add(123);
		t.add(123);
		
		t.forEach(test());
		System.out.println("Ber: " + berechnen().berechne(12, 12));
		
//		
//		t.forEach(i -> System.out.println(i));
//		System.out.println("Innere Klasse: ");
//		t.forEach(new Consumer<Integer>() {
//			
//			public void accept(Integer i) {
//				
//				System.out.println(i);
//			}
//			
//		});
////		test(t, 123);
//		
//		t.removeIf(f -> f  == 123);
//		
//		t.removeIf(new Predicate<Integer>() {
//
//			@Override
//			public boolean test(Integer value) {
//				return value == 123;
//			}
//			
//			
//		});
//		System.out.println(t);
//		
//		System.out.println(t);
//		T tf = (a,b) -> a+b;
//		
//		System.out.println(tf.berechne(12, 12));
//		

	}
	
	public static Consumer<Integer> test() {
		
		class S implements Consumer<Integer>{

			@Override
			public void accept(Integer t) {
				System.out.println(t);
			}
			
		}
		
		return new S();
	}
	
	public static T berechnen() {
		
		class X implements T{
			
			public int berechne(int i, int b) {
				return i+b;
			}
		}
		
		return new X();
	}
	
}

interface T {

	int berechne(int x, int y);
}
