4
我想发送条件语句(尚未评估)作为方法的参数。我明白在java8,lambda表达式是做到这一点的方式(有效地将条件放在函数中,并发送函数)。如何将条件发送到使用lambda表达式的方法以使其尚未评估?
// simple method inside a utilities class
// that does assertions if global debug parameter is true
public class MyUtils
{
public static void do_assertions(boolean argb , String args)
{
if(BuildConfig.pvb_debuggable)
{ assert argb , args ;
}
}
}
// somewhere within app where a development-phase assertion is needed
public class some_class
{
public void some_method()
{
EditText lvo_editText = (EditText) findViewById("the_id") ;
//assert lvo_editText != null;
// ... replace this with a call to do_assertions
MyUtils.do_assertions(() -> { lvo_editText != null ; } , "bad EditText");
}
}
我已经试过这种设置的许多变化。我每次都会收到不同的错误:)
@ Jean-FrançoisSavard:看起来Android N平台支持Java 8语言功能。 – scottb
我认为你主要是正确的...开箱即用的AS2将处理jdk1.8。*,但实际上并不会启用许多实际的java8功能(如lambda)......似乎存在一些选项:** 1 ** - > _启用Java 8功能和Jack Toolchain_(http://developer.android.com/preview/j8-jack.html#configuration)... ...或** 2 ** - > _Android N引入了对Java 8语言特性的支持_(http://developer.android.com/preview/j8-jack.html#configuration .. ...就这样说,你的答案似乎是......答案...谢谢... – dsdsdsdsd