java - 如何将复制构造函数作为方法引用传递?

标签 java lambda java-8 copy-constructor method-reference

我有一个 PlanItemEditor 类。

我需要 E 项的复制构造函数。如何使用方法引用传递它?

public void initValues(ObservableList<E> srcList, E toEdit) {
    indexToSet = srcList.indexOf(toEdit);
    editing = new E(toEdit);
    this.srcList = srcList;
}

我正在考虑包含一个一元函数作为参数,并从 E 类中传入一个方法,该方法完全是一个复制构造函数,但具有不同的名称签名。然而,这有点老套。

有更好的方法吗?

最佳答案

您可以使用:

public void initValues(ObservableList<E> srcList, E toEdit, UnaryOperator<E> copy) {
    indexToSet = srcList.indexOf(toEdit);
    editing = copy.apply(toEdit);
    this.srcList = srcList;
}

你可以这样调用它:

initValues(srcList, toEdit, YourClass::new);

关于java - 如何将复制构造函数作为方法引用传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25500213/

相关文章:

java-8 - 并行流重复项目

Java 使用 ObjectInputStream 读取不同的变量

java - 使用本地类时构造函数引用无效?

java - 如果某个项目多次出现,则删除列表中该项目的所有实例

haskell - 手动推断类型 (\x y z -> (x y) z)

c++ - 为什么在 lambda 中 move 时不调用 move 构造函数?

java - JPA 对 Java 8 新日期和时间 API 的支持

Java JTabbedPane 和 stateChanged 事件,getTabCount() 有错误?

javascript - Chrome 应用程序使页面无响应

java - 如何返回一个字符串?