gpt4 book ai didi

java - lambda 表达式中的类型参数不兼容

转载 作者:行者123 更新时间:2023-12-01 08:46:36 25 4
gpt4 key购买 nike

ChangeListener有一个方法changed()并签名

void changed(ObservableValue<? extends T> observable, T oldValue, T newValue);

但是当我尝试执行以下操作时,它显示“lambda 表达式中的类型参数不兼容”。

ChangeListener listener1;
listener1 = (ObservableValue<? extends Number> observableValue , Number number, Number number2) ->

{ textareaDescription.setText((String) options1.get(number2.intValue())); textareaMustCheck.setText((String) options2.get(number2.intValue())); };

但是以下代码可以完美运行

 choiceboxStrategy.getSelectionModel().selectedIndexProperty().addListener((ObservableValue<? extends Number> observableValue, Number number, Number number2) -> {
textareaDescription.setText((String) options1.get(number2.intValue()));
textareaMustCheck.setText((String) options2.get(number2.intValue()));

最佳答案

嗯,答案很简单。你的 Lambda 表达式是错误的。替换为这个版本:

    ChangeListener<Number> listener1;

listener1 = (observableValue , number, number2) ->

{ textareaDescription.setText((String) options1.get(number2.intValue())); textareaMustCheck.setText((String) options2.get(number2.intValue())); };

您使用 ChangeListener 作为原始类型。

添加:

这是监听器的缩短版本,编译时不会出现错误:

    ChangeListener<Number> listener1 = (v, o, n) -> {int i2 = n.intValue();};

如果您仍然看到错误,那么这些错误是由您未向我们展示的其他代码引起的,因此我们无法对此发表任何评论。

关于java - lambda 表达式中的类型参数不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42618178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com