package alx.p30_lambdy.v2;

public class Lambdy2 {

	public static void main(String[] args) {
		FunkcjaLiczbowa f2 = x -> x*x;
		System.out.println(f2.oblicz(5.0));
		System.out.println(f2.oblicz(12.5));


		// Technicznie: w f1 i f2 są wpisane OBIEKTY
        Object o = f2;
        System.out.println(o);

        // Są to obiekty klas generowanych automatycznie,
        // te klasy implementują interfejs FunkcjaLiczbowa.

        System.out.println(f2.getClass());
        if(f2 instanceof FunkcjaLiczbowa) {
            System.out.println("Jest instancją");
        } else {
            System.out.println("Nie jest instancją");
        }

        // Podczas kompilacji z kontekstu musi wynikać do jakiego interfejsu ma być dopasowana dana lambda.
        // Object o2 = x -> 100*x + 13;
        // Object o3 = (double x) -> {return 100*x + 13;};
	}

}
