EDIT: Я считаю, что проблема заключается в добавлении узлов. Когда я запускаю выборку узлов, они возвращаются в нуль. Я считаю, что это потому, что head не получает настройки, поскольку impl.getHeadNode() == null никогда не возникает.Узел getter не возвращает значение настройки
Constructor:
public CashDonationLinkedListImpl() {
iterNode = headNode = new CashDonationNode(null);
}
Добавить метод:
public void add(Object obj) {
CashDonation cashDonation = (CashDonation)obj;
CashDonationLinkedListImpl impl = new CashDonationLinkedListImpl();
CashDonationNode node = new CashDonationNode();
node.setCashDonation(cashDonation);
//node.setNext(null);
if(impl.getHeadNode() == null){
System.out.println("Head node");
impl.setHeadNode(node);
}
else{
//node.setCashDonation(cashDonation);
//node.setNext(null);
for (CashDonationNode cashNode = headNode;cashNode.getNext() != null;cashNode = cashNode.getNext()) {
// currNode.setNext(null);
}
//cashNode.setCashDonation(cashDonation);
cashNode.setNext(node);
}
Оригинал: Поглотитель возвращает два нуля, а связующий занимает в 100, 100 и 10000. Я уверен, что я забывая что-то сделать, но не могу на нее наложить. Почему геттер не возвращает значения из сеттера?
public class CashDonationNode {
CashDonation cashDonation;
CashDonationNode next;
public CashDonationNode() {
cashDonation = new CashDonation();
next = null;
}
public CashDonationNode(CashDonation cashDonation, CashDonationNode next) {
this.cashDonation = cashDonation;
this.next = next;
}
public CashDonationNode getNext(){
return next;
}
public void setNext(CashDonationNode nextValue){
this.next = nextValue;
}
public void setCashDonation(CashDonation cashDonation){
this.cashDonation = cashDonation;
System.out.print("node storage");
System.out.println(this.cashDonation.getDonationAmount());
}
public CashDonation getCashDonation(){
System.out.println("node retrieval " + cashDonation.getDonationAmount());
return this.cashDonation;
}
}
Фрагменты из списка ниже. Возвращает те же нули:
CashDonationNode iterNode = new CashDonationNode(); //declared in class
public void iterator() {
iterNode = headNode;
}
@Override
public CashDonation next() {
CashDonation cashDonation = iterNode.getCashDonation();
System.out.println("Impl: " + cashDonation.getDonationAmount());
iterNode = iterNode.getNext();
return cashDonation;
}
Ничего не торчит здесь. Пожалуйста, добавьте код, который использует этот класс, плюс класс «CashDonation» (и удалите любой нерелевантный код). A [mcve], поэтому мы можем видеть проблему для себя. –
Не уверен, что все будет уместно включить. Узел является частью связанного списка, вызываемого менеджером. Менеджер вызывается из части основного класса. Класс CashDonation отлично работал при работе с массивами и не менял его с тех пор. Начните с включения частей тех, кто имеет дело со следующим()? –
@Nicholas Yount Можете ли вы предоставить класс CashDonation? так что мы можем понять, почему геттер возвращает неожиданное значение. – Truthira