我有一个不可变对象,其中包含int类型的重量。在我的代码中,我需要更新这个重量。为了做到这一点,我需要复制该对象,并使用更新后的值设置重量。但是该对象没有clone()重写方法,而且我不知道哪种方式更好——是实现Cloneable接口还是使用clone()方法?
以下是我所拥有的类:
以下是我所拥有的类:
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
的引用。 - Andrew Bissell