Как я могу изменить экземпляр объекта и вернуть значение из того же метода? - PullRequest
0 голосов
/ 18 июня 2020

У меня проблема с обработкой конкретного метода с помощью настраиваемого объекта:

Я создал класс «NodeQueue», который содержит список узлов (SList <"Node">), его длину и первый элемент списка

private final SList<Node> q;
private final int length;
private final Node first;

public NodeQueue()                              //Empty queue
{
    q      = new SList<Node>();
    length = 0;
    first  = null;
}

public NodeQueue(SList<Node> q1)             //Full queue
{
    q      = q1;
    length = q.length();                     //length() is the method that returns the length of SList<T>
    first  = q.car();                        //car() is the method that returns the first element of SList<T>
}

public Node poll()
{
    ...

    return first;
}

Где ожидаемая функция poll () следующая:

NodeQueue n = new NodeQueue();  //Let's pretend n is not empty

Node a = n.poll();              //Where "a" is the first element of the list

Проблема в том, что в «poll ()» мне нужно вернуть первую элемент (в данном случае в Node a) и стереть его из фактического экземпляра «NodeQueue n».

Как мне обновить Nodequeue и вернуть первый элемент в одной функции?

Мне в основном нужно установить «Node a» на первый элемент NodeQueue и установить «NodeQueue n» на себя за вычетом первого элемента.

1 Ответ

0 голосов
/ 18 июня 2020

Вы бы .. просто .. сделали это.

public class Example {
    private int field;

    public int changeAndReturnSomething(int in) {
        this.field += in; //I changed a field...
        return in * 2; // and I return something!
    }
}

кажется тривиальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...