gpt4 book ai didi

java - 类实例改变另一个实例

转载 作者:行者123 更新时间:2023-12-01 12:39:35 24 4
gpt4 key购买 nike

代码是:

package classes;

public class Test {
private static double mutationRate = 0.5;

public static void main(String[] args) {
Population pop = new Population();
pop.initialise();
Population po = new Population();
po.getIndividusList().add(pop.getFittest());
po.getIndividusList().add(mutate(pop.getIndividusList().get(1)));
}

private static Chromosom mutate(Chromosom l) { // changer les couples d'interventions des parcs)
// loop through genes
Chromosom ch = new Chromosom();
for (int i = 0; i < l.size(); i++)
ch.put(i, l.get(i));

for (int i = 0; i < ch.size(); i++) {
double alea = Math.random() * 13;
int moisIntervention1 = (int) alea;

Intervention interv1 = new Intervention(1, moisIntervention1);
ch.get(i).modInterventions(ch.get(i).intervention2(interv1));
}
return ch;
}
}

问题是我没有更改实例 pop,但是当我更改其他实例 po 时,pop 也会更改。

最佳答案

java 按值传递。

当你调用这个mutate(pop.getIndividusList().get(1))

您正在发送 pop 的实例,因此它会发生变化。

假设pop.getIndividusList().get(1)返回String varibale这样做

String var=pop.getIndividusList().get(1);

然后调用mutate(var)

关于java - 类实例改变另一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25242834/

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