У меня есть неизменяемый объект, который имеет вес как int, в моем коде мне нужно обновить вес, inroder, чтобы сделать это, мне нужно сделать копию этого объекта и установить вес с обновленным стоимость. но у объекта нет переопределения clone(), и я не знаю, какой способ лучше, clone() или реализовать Cloneable interface?clone неизменяемый объект в 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' в конструктор. –
@AndrewBissell - вы правы, я забыл об этом ... Я уточню свой ответ. – MByD