Как вы возвращаете в Джерси + Ява массив из определенного индекса - PullRequest
0 голосов
/ 19 декабря 2018

Сейчас 3 часа утра, когда я пытаюсь разобраться с этим.

Моя конечная цель - получить список выполненных транзакций.

Мой GET:

       /*
   This GET method returns in a JSON format all transaction history of given customer id
   */
   @GET
   @Produces(MediaType.APPLICATION_JSON)
   @Path("/history/{cId}")
   public Object history(@PathParam("cId") int customerId){
         return accountsService.getAllTransfersFromAccount(customerId);
   }

getAllTransfersFromAccount:

    /*
Gets the list of transactions of given customer 
*/
public Object getAllTransfersFromAccount(int cId) {
    for(Transactions history : transactionsHistory) {
        if(history.getTransactions() == cId) {
            return history;
        }
    }
    return null;
}

И мой класс транзакций

    public class Transactions {
    /**
     *  TRANS TYPE
     * 0 - Deposit
     * 1 - Withdrawal
     * 2 - Transfer
     * 3 - Transfer Receive
     */
    public int cId, amount, transType;
    public Transactions(int transType, int cId, int amount){
        this.transType = transType;
        this.cId = cId;
        this.amount = amount;
    }

    public int getTransactions(){
        return cId;
    }
}

Каков наилучший способ печати всех транзакций, связанных с данным cId?Если я делаю цикл for, он печатает все транзакции, просто хочу вернуть определенную.Извините за плохой форматированный вопрос, 3 часа записи не мое дело.

1 Ответ

0 голосов
/ 19 декабря 2018

Как лучше всего распечатать все транзакции, связанные с данным cId?

Что вы ищете - это ArrayList.Вам нужно создать новый ArrayList из Transactions и продолжать добавлять все, что вы хотите в этот список.

Затем можно наконец вернуть этот список, чтобы иметь те транзакции, которые относятся к данному cID с.

Фрагмент кода:

public List<Transactions> getAllTransfersFromAccount(final int cId) {
    /* Create List */
    List<Transactions> transactionsList = new ArrayList<>();
    for(Transactions history : transactionsHistory) {
        if(history.getTransactions() == cId) {
            /* Add Items */
            transactionsList.add(history);
        }
    }
    /* Return List */
    return transactionsList;
}

РЕДАКТИРОВАТЬ: Спасибо, @ nullpointer .В Java 8 вы можете просто сделать:

public List<Transactions> getAllTransfersFromAccount(final int cId) {
    return transactionHistory.stream().filter(t -> t.getTransactions() == cId).collect(Collectors.toList());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...