ラムダ式:Jframeを使用して、ラムダがある場合とない場合のコードの単純さを示します

ラムダ式:Jframeを使用して、ラムダがある場合とない場合のコードの単純さを示します

前書き

java8では、非常に重要な機能が導入されました。これは、コードをより簡潔で読みやすくすることができるLambda式です。これにより、関数をパラメーターとして使用できます。これは関数型プログラミング指向のアイデアです。ある程度、コードをより簡潔に見せることができます。
しかし、欠点は、Javaプログラマーが一般的にプログラミングにオブジェクト指向の考え方を使用することです。ある意味で、Lambdaはオブジェクト指向の考え方に適合しません。

テキスト

例としてJfameを使用して、JButtonボタンがイベントをリッスンするときのコードを示し、ラムダを使用する場合と使用しない場合の単純さを比較します。

package com.moonl.jvm.jframe;


import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Jframe extends JFrame {
    
    


    public Jframe() {
    
    
        this.setBounds(400, 400, 450, 450);
        this.setTitle("lambda test");
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JPanel jPanel = new JPanel();
        jPanel.setBounds(400,400,0,0);
        this.add(jPanel);
        //
        jPanel.add(_createButton("偷袭", "大意了"));
        jPanel.add(_createButtonLambda("我没有闪", "年轻人不讲武德"));
    }

    /**
     * 按钮控件监听
     * @param name
     * @param msg
     * @return
     */
    public JButton _createButton(String name, String msg) {
    
    

        JButton jb = new JButton(name);
        jb.addActionListener(new ActionListener() {
    
    
            @Override
            public void actionPerformed(ActionEvent e) {
    
    
                System.out.println(msg);
            }
        });
        return jb;
    }

    /**
     * 按钮控件使用lambda监听
     * @param name
     * @param msg
     * @return
     */
    public JButton _createButtonLambda(String name, String msg) {
    
    
        JButton jb = new JButton(name);
        jb.addActionListener(event -> System.out.println(msg));
        return jb;
    }

    public static void main(String[] args) {
    
    
        new Jframe();
    }
}

コードが投稿されました。ラムダの構文形式は、コードを読みやすくするために実際にはるかに簡潔であることがわかります。
次に、操作の効果を見てみましょう。

プログラムが実行されます
ここで、2つのボタンを別々にクリックします。
エフェクト出力
これで、2つのボタンのリスニングイベントが必要なメッセージを出力したことがわかります。
効果は同じです。

追記

この記事を読んだ学生の皆さん、実際の開発プロセスでは、どの方法を使用してコードを記述しますか?
ラムダ構文を使用することを検討しますか?

おすすめ

転載: blog.csdn.net/liaoyue11/article/details/110955671