我有一个不可变的对象,它具有权重int,在我的代码中,我需要更新权重,inroder做到这一点,我需要制作该对象的副本并设置更新的权重值。但该对象没有clone()重写,并且我不知道哪种方式更好,clone()或实现Cloneable接口?克隆Java中的不可变对象
这里是我的类:
public class WeightedEdge implements Edge {
private final WeightedEdgeComparator _weightedEdgeComparator;
private final Vertex _target;
private final int _weight;
WeightedEdge(Bundle bundle, Vertex target, int weight) {
_weightedEdgeComparator = new EdgeComparator(bundle.getDirection());
_target = target;
_weight = weight;
}
@Override
public Vertex target() {
return _target;
}
@Override
public int weight() {
return _weight;
}
@Override
public int compareTo(WeightedEdge o) {
return _EdgeComparator.compare(this, o);
}
@Override
public int hashCode() {...}
@Override
public boolean equals(Object obj) { ... }
@Override
public String toString() { ... }
我觉得这个问题是,'WeightedEdge'类没有引用保持在它的构造了'_bundle'。 – 2013-03-27 22:24:44
@AndrewBissell - 你是对的,我忽略了......我会更新我的答案。 – MByD 2013-03-27 22:26:17