MENU

Lambda

Java 8 学习笔记(一)Hello Lambda

在Android、Swing中,会经常看到类似代码;将行为包装成一个对象(匿名内部类)进行传递。为了传递一行逻辑代码,需要额外样板代码,而且可读性较差。

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(MainActivity.this, "you have clicked Button", Toast.LENGTH_SHORT).show();
    }
});

在Java 8中引入了lambda表达式,Lambda可以简单理解为一个代码块,我们可以直接把Lambda作为参数传给方法;在上述代码中,我们可以直接传递行为代码,而不需要构造一个匿名内部类:

button.setOnClickListener(v -> Toast.makeText(MainActivity.this, "you have clicked Button", Toast.LENGTH_SHORT).show());

Read More