尽管有一些阅读,但我遇到了一些我仍难以理解的代码。调用了一个方法,该方法需要两个参数,其中一个是Runnable。尽管有一个lambda,但没有传递Runnable对象。
例如:
公共课程LambdaTest {
私人最终锁锁=新的ReentrantLock();
@测试
公共无效createRunnableFromLambda(){
Locker.runLocked(lock,()-> {
System.out.println(“ hello world”);
});
}
公共静态类储物柜{
公共静态无效runLocked(锁定锁,可运行块){
lock.lock();
尝试{
block.run();
}最后{
lock.unlock();
}
}
}
}
所以我的问题是,你能解释一下如何从lambda创建一个Runnable吗,也请有人解释一下语法 () -> {}。具体来说,()括号是什么意思?
谢谢。
Lambda可以在需要功能接口的任何地方使用。功能接口是具有单个抽象方法的任何接口。
在这种情况下使用的lambda语法为(arguments) -> {blockOfCodeOrExpression}
。在使用单个参数的情况下,可以省略括号,在使用单个命令或表达式的情况下,可以省略花括号。
换句话说,() -> System.out.println("hello world");
就相当于*在这儿,一个Runnable
有望
new Runnable(){
@Override
public void run(){
System.out.println("Hello world one!");
}
};
*(我很确定它不是字节码等效的,但在功能上等效)
问题内容: 目前,每当我需要从数组创建流时,我都会 有一些直接的方法可以从数组创建流吗? 问题答案: 您可以使用Arrays.stream Eg 您也可以使用@fge所提到的,它看起来像 但是note 将返回,而如果您传递一个type数组,则将返回。因此,简而言之,您可以观察两种方法之间的区别,例如 将原始数组传递给时,将调用以下代码 当您将原始数组传递给以下代码时,将被调用 因此,您得到不同的结
`公共类LoginSuccess扩展AppCompatActivity{Toolbar Toolbar;TabLayout TabLayout;ViewPager ViewPager;ViewPagerAdapter ViewPagerAdapter; }`
目前,每当我需要从数组创建流时,我都会
我正在使用Spring maven插件,我想从特定文件夹中的指定xml模式创建POJO类。我尝试通过java代码使用< code>xjc命令,但是它不能生成这些类。其次,我尝试使用< code>jaxb,但是在marshell/unmarshalling时,它处理的是< code>xml文件,而不是< code>xsd模式。我认为这不是从< code>xsd创建POJO的方法。 在java中从xs
问题内容: 我正在尝试将String传递给我的。如何通过针对读者的“测试” 而不是来自读者的输入? 问题答案: 您可以如下修改代码