gpt4 book ai didi

JavaFX:克隆 XYChart.Series 不工作

转载 作者:行者123 更新时间:2023-12-02 10:27:43 26 4
gpt4 key购买 nike

大家好,我遇到了这个问题:

XYChart.Series x = (XYChart.Series)((XYChart.Series)item).clone();

错误:clone() 已在 java.lang.Object 中保护访问

如何解决?重要的是,x值的副本,并且不是指向克隆项的指针。

最佳答案

使用clone要求该方法由类型实现。大部分 JavaFX 类(如果不是全部)都不会这样做,因为大多数类都包含可能附加不可克隆监听器的属性。

这意味着您需要自己实现复制 XYChart.Series

由于您想要该系列的深拷贝,因此可以使用以下代码。根据您的用例,复制所有 XYChart.Data 对象可能是必要的,也可能不是:

public static <S, T> XYChart.Series<S, T> copySeries(XYChart.Series<S, T> series) {
XYChart.Series<S, T> copy = new XYChart.Series<>(series.getName(),
series.getData().stream()
.map(data -> new XYChart.Data<S, T>(data.getXValue(), data.getYValue()))
.collect(Collectors.toCollection(FXCollections::observableArrayList)));
return copy;
}

如果不需要复制Data对象,则代码可以简化为

public static <S, T> XYChart.Series<S, T> copySeries(XYChart.Series<S, T> series) {
XYChart.Series<S, T> copy = new XYChart.Series<>(series.getName(),
FXCollections.observableArrayList(series.getData()));
return copy;
}

关于JavaFX:克隆 XYChart.Series 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53807176/

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