関数型インターフェースとラムダ式の練習①

Eclipseでコード書きながら記法の練習してたら可読性0になってしまったので、こっちに清書する。

まずラムダ式に入る前に、主な関数型インターフェースをそのままオーバーライドして利用してみる。完全に使い道を理解してない書き方だが今は仕方がない。
なおジェネリクスの型は適当にStringにしてある。

// Functionインターフェイスのapply()
// String型引数を受け取る。戻り値はString型。
class Func implements Function<String, String>{
	@Override
	public String apply(String t) {
		return "Hello" + t;
	}
}

// 利用先
Func func = new Func();
String funcTest = func.apply("java");
System.out.println(funcTest);// 結果:HelloJava
//Consumerインターフェイスのaccept()
//String型引数を受け取る。戻り値はなし。
class Cons implements Consumer<String>{
	@Override
	public void accept(String t) {
		System.out.println("Hello" + t);	
	}
}

// 利用先
Cons cons = new Cons();
cons.accept("python");// 結果:Hellopython
// Predicateインターフェースのtest()
// String型引数を受け取る。戻り値は真偽値。
class Pred implements Predicate<String>{
	@Override
	public boolean test(String t) {
		if(t.equals("PHP")) {
			return true;
		}
		return false;
	}
}

// 利用先
Pred pred = new Pred();
System.out.println(pred.test("PHP"));// 結果:true
// Supplierインターフェースのget()
// 何も受け取らない。戻り値はString
class Supp implements Supplier<String>{
	@Override
	public String get() {
		return "HelloJavaScript";
	}
}

// 利用先
Supp supp = new Supp();
System.out.println(supp.get());// 結果:HelloJavaScript
//UnaryOperatorインターフェースのapply()
// String型引数を受け取る。戻り値はString
class Unar implements UnaryOperator<String>{
	@Override
	public String apply(String t) {
		return "Hello" + t;
	}
}

// 利用先
Unar unar = new Unar();
String unarTest = unar.apply("Ruby");
System.out.println(unarTest);// 結果:HelloRuby

なんだか長くなりそうなので記事を分ける。