1
abstract class QuadPredicate<T,R, U,V> implements Predicate<T> {
public abstract boolean test(final T t, final R r, final U u,final V v);
public boolean test(Object t) {
throw new UnsupportedOperationException();
}
}
働く機能インタフェースこの式のターゲットタイプは、拡張述語の機能インタフェースでなければなりませんか?
QuadPredicate<String ,String , String ,String > q = (String i, String j, String k,String l) -> {return i.equals(j);};
が、バージョン以下でなければならない私は、この表現のターゲット型を付与する声明を下回っている理由:、インタフェースでなければなりません
QuadPredicate<Object ,Object , String ,String > q =
(QuadPredicate<Object, Object, String,String>)new ScriptEngineManager().getEngineByName("nashorn").eval(
"new com.test.QuadPredicate(function(obj, obj2, obj3,obj4) obj.equals(obj2))");
System.out.println(">>>>" + q.test("A", "A", null, null)); //gives true
y私のソリューションは私にとってはうまくいくが、なぜナシューンのQuadPredicate版で動作するのだろうか? – Ajeetkumar
@Ajeetkumar私は本当に伝えることができません、ナショーンを使用していません – Eugene
@Ajeetkumar NashornはJavaScriptエンジンであり、JavaScriptは異なるルールを持つ別のプログラミング言語です... – Holger