簡體   English   中英

Java(最新版)Lambda:用lambda替換匿名內部class

[英]Java (latest version) Lambda: replace anonymous inner class by lambda

我有一個 class,其中包含以下內容:

slider.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            // creating font object and store textarea value font
            Font font = area.getFont();
            // setting size from getting slider value
            float size = ((JSlider) e.getSource()).getValue();
            // setting font size for textarea
            area.setFont(font.deriveFont(size));

        }
    });

VScode Insider告訴我把里面的class換成lambda,

如果您想了解我的意思,這是一個屏幕截圖, ChangeListener 下划線為黃色

所以我試圖想出辦法,但由於我經驗不足,無法想出任何辦法,請問有人想幫我找到其他方法如何編寫這個“ChangeListener”嗎......?

如果您使用 Intellij IDEA,它會為您完成。

slider.addChangeListener(e -> {
            // creating font object and store textarea value font
            Font font = area.getFont();
            // setting size from getting slider value
            float size = ((JSlider) e.getSource()).getValue();
            // setting font size for textarea
            area.setFont(font.deriveFont(size));
    });

我從不喜歡這些冗長的 lambda 方法。 我更喜歡這樣的東西:

private void processSliderEvent(ChangeEvent ce){...}

slider.addChangeListener(this::processSliderEvent);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM