将Java lambda的结果分配给字段
我想使用Java中的lambda在创建时在对象上配置一个字段。这意味着我必须内联调用lambda,但我没有看到在将lambda分配给某个对象之前运行它的示例。具体来说,我想这样做:
private JTextField tfInput = () -> { JTextField tf = JTextField(""); tf.setEditable(false); return tf; }();
这在Java中可能吗
你可以在下面搜索框中键入要查询的问题!
我想使用Java中的lambda在创建时在对象上配置一个字段。这意味着我必须内联调用lambda,但我没有看到在将lambda分配给某个对象之前运行它的示例。具体来说,我想这样做:
private JTextField tfInput = () -> { JTextField tf = JTextField(""); tf.setEditable(false); return tf; }();
这在Java中可能吗
# 1 楼答案
您必须首先将lambda转换为功能接口:
但是我不知道为什么你会选择这个,而不是声明一个简单的方法,或者从构造函数或初始化程序块初始化。另外,请注意,如果您试图确保字段只有在初始化后才可见,则可能需要将其设置为
final
或volatile