JEP 443, Unnamed Patterns and Variables (Preview), е завършен и таргетира JDK 21.
с 2 думи, когато имате нещо такова
if (r instanceof ColoredPoint(Point p, Color c)) {
// ... }
обаче да кажем цветът не ви интересува, то ще може да сложите долна черта вместо него т.е. да бъде ето така
if (r instanceof ColoredPoint(Point p, _)) { // ... }
Има и други случай - например ако искате да направите цикъл с for each обаче не искате да ползвате итема в цъкала то може вместо :
for (Order order : orders) { if (total < limit) total++; }
да напишете
for (_ : orders) { if (total < limit) total++; }
Също и в switch-ове естествено.
switch (b) { case Box(RedBall _), Box(BlueBall _) -> processBox(b); case Box(GreenBall _) -> stopProcessing(); case Box(_) -> pickAnotherBox(); }
или в try блок
try (var _ = ScopedContext.acquire()) { // No use of acquired resource }
Или в catch блок, ако не ви интересува точно exception-a.
try { int i = Integer.parseInt(s); } catch (NumberFormatException _) { System.out.println("Bad number: " + s); }
За повече цъкнете тук.