Real World Example

Paytm-style CSV Import

Back-office tools often read CSV rows (from a bank statement or merchant upload) and convert them into objects. Method references keep each step short and named.

Example

Parse, validate and summarise wallet transactions.

import java.util.*;
import java.util.stream.*;

public class Main {
    public static void main(String[] args) {
        String csv = """
                TXN1,ravi,250
                TXN2,anita,-40
                TXN3,ravi,1200
                TXN4,sam,75
                """;

        List<Txn> valid = csv.lines()
                .map(Txn::parse)
                .filter(Txn::isValid)
                .sorted(Comparator.comparing(Txn::user).thenComparing(Txn::amount))
                .toList();

        valid.forEach(System.out::println);
        System.out.println("Users: " + valid.stream().map(Txn::user).distinct().collect(Collectors.joining(", ")));
    }
}

record Txn(String id, String user, int amount) {
    static Txn parse(String line) {
        String[] p = line.split(",");
        return new Txn(p[0], p[1], Integer.parseInt(p[2]));
    }
    boolean isValid() { return amount > 0; }
}

Output

Txn[id=TXN1, user=ravi, amount=250]
Txn[id=TXN3, user=ravi, amount=1200]
Txn[id=TXN4, user=sam, amount=75]
Users: ravi, sam