我有一個不可變的對象,它具有權重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