Skip to content

Commit 2c017c1

Browse files
Merge branch 'main' into feat/pl-translation-bootstrap
2 parents 6d7ccf7 + 85dfcd9 commit 2c017c1

File tree

125 files changed

+2120
-3
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

125 files changed

+2120
-3
lines changed

html-generators/generate.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,8 @@ String renderIndexCard(String tpl, Snippet s, String locale, Map<String, String>
366366
Map.entry("jdkVersion", s.jdkVersion()), Map.entry("cardHref", cardHref),
367367
Map.entry("cards.old", strings.getOrDefault("cards.old", "Old")),
368368
Map.entry("cards.modern", strings.getOrDefault("cards.modern", "Modern")),
369-
Map.entry("cards.hoverHint", strings.getOrDefault("cards.hoverHint", "hover to see modern →"))));
369+
Map.entry("cards.hoverHint", strings.getOrDefault("cards.hoverHint", "hover to see modern →")),
370+
Map.entry("cards.learnMore", strings.getOrDefault("cards.learnMore", "learn more"))));
370371
}
371372

372373
String renderWhyCards(String tpl, JsonNode whyList) {

html-generators/locales.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ ar=🇸🇦 العربية
88
fr=🇫🇷 Français
99
ja=🇯🇵 日本語
1010
ko=🇰🇷 한국어
11-
pl=🇵🇱 Polski
11+
it=🇮🇹 Italiano
12+
pl=🇵🇱 Polski

templates/index-card.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ <h3>{{title}}</h3>
1818
</div>
1919
<div class="tip-card-footer">
2020
<span class="browser-support"><span class="dot"></span> JDK {{jdkVersion}}+</span>
21-
<span class="arrow-link"></span>
21+
<span class="arrow-link">{{cards.learnMore}} </span>
2222
</div>
2323
</a>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: Collectors.teeing()
3+
oldApproach: Due passaggi
4+
modernApproach: teeing()
5+
summary: "Calcola due aggregazioni in un unico passaggio dello stream."
6+
explanation: "Collectors.teeing() invia ogni elemento a due collector downstream e unisce i risultati. Evita di scorrere i dati due volte o di usare un accumulatore mutabile."
7+
whyModernWins:
8+
- icon:
9+
title: Passaggio singolo
10+
desc: "Elabora lo stream una volta invece di due."
11+
- icon: 🧩
12+
title: Componibile
13+
desc: "Combina qualsiasi due collector con una funzione di unione."
14+
- icon: 🔒
15+
title: Risultato immutabile
16+
desc: "Unisci direttamente in un record o value object."
17+
support:
18+
description: Ampiamente disponibile dal JDK 12 (marzo 2019)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: Copia di collezioni in modo immutabile
3+
oldApproach: Copia manuale + Wrap
4+
modernApproach: List.copyOf()
5+
summary: "Crea una copia immutabile di qualsiasi collezione in una chiamata."
6+
explanation: "List.copyOf(), Set.copyOf() e Map.copyOf() creano snapshot immutabili di collezioni esistenti. Se la sorgente è già una collezione immutabile, non viene effettuata alcuna copia."
7+
whyModernWins:
8+
- icon:
9+
title: Copia intelligente
10+
desc: "Salta la copia se la sorgente è già immutabile."
11+
- icon: 📏
12+
title: Una chiamata
13+
desc: "Nessuna costruzione manuale di ArrayList + wrapping."
14+
- icon: 🛡️
15+
title: Copia difensiva
16+
desc: "Le modifiche all'originale non influenzano la copia."
17+
support:
18+
description: Ampiamente disponibile dal JDK 10 (marzo 2018)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: Creazione di liste immutabili
3+
oldApproach: Wrapping verboso
4+
modernApproach: List.of()
5+
summary: "Crea liste immutabili in un'unica espressione pulita."
6+
explanation: "List.of() crea una lista veramente immutabile — nessun wrapping, nessuna copia difensiva. È ostile ai null (rifiuta elementi null) e strutturalmente immutabile. Il vecchio modo richiedeva tre chiamate annidate."
7+
whyModernWins:
8+
- icon: 📏
9+
title: Una chiamata
10+
desc: "Sostituisci tre chiamate annidate con un singolo metodo factory."
11+
- icon: 🔒
12+
title: Veramente immutabile
13+
desc: "Non è solo un wrapper — la lista stessa è immutabile."
14+
- icon: 🛡️
15+
title: Null-safe
16+
desc: "Rifiuta gli elementi null al momento della creazione, fallendo rapidamente."
17+
support:
18+
description: Ampiamente disponibile dal JDK 9 (settembre 2017)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: Creazione di mappe immutabili
3+
oldApproach: Pattern Builder per Map
4+
modernApproach: Map.of()
5+
summary: "Crea mappe immutabili inline senza un builder."
6+
explanation: "Map.of() accetta coppie chiave-valore inline e restituisce una mappa immutabile. Per più di 10 voci, usa Map.ofEntries() con coppie Map.entry()."
7+
whyModernWins:
8+
- icon: 📏
9+
title: Creazione inline
10+
desc: "Non serve una mappa mutabile temporanea."
11+
- icon: 🔒
12+
title: Risultato immutabile
13+
desc: "La mappa non può essere modificata dopo la creazione."
14+
- icon: 🚫
15+
title: Nessuna chiave/valore null
16+
desc: "Le voci null vengono rifiutate immediatamente."
17+
support:
18+
description: Ampiamente disponibile dal JDK 9 (settembre 2017)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: Creazione di set immutabili
3+
oldApproach: Wrapping verboso
4+
modernApproach: Set.of()
5+
summary: "Crea set immutabili con una singola chiamata factory."
6+
explanation: "Set.of() crea un set veramente immutabile che rifiuta null e elementi duplicati al momento della creazione. Niente più wrapping di set mutabili."
7+
whyModernWins:
8+
- icon: 📏
9+
title: Conciso
10+
desc: "Una riga invece di tre chiamate annidate."
11+
- icon: 🚫
12+
title: Rileva duplicati
13+
desc: "Lancia un'eccezione se passi accidentalmente elementi duplicati."
14+
- icon: 🔒
15+
title: Immutabile
16+
desc: "Nessuna aggiunta/rimozione possibile dopo la creazione."
17+
support:
18+
description: Ampiamente disponibile dal JDK 9 (settembre 2017)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: Factory Map.entry()
3+
oldApproach: SimpleEntry
4+
modernApproach: Map.entry()
5+
summary: "Crea voci di mappa con un metodo factory pulito."
6+
explanation: "Map.entry() sostituisce il verboso costruttore AbstractMap.SimpleEntry. Restituisce una voce immutabile, rendendola ideale per Map.ofEntries() e le operazioni stream."
7+
whyModernWins:
8+
- icon: 📏
9+
title: Conciso
10+
desc: "Una riga invece di tre con un'intenzione più chiara."
11+
- icon: 🔒
12+
title: Immutabile
13+
desc: "La voce restituita non può essere modificata."
14+
- icon: 🧩
15+
title: Componibile
16+
desc: "Funziona perfettamente con Map.ofEntries() per mappe grandi."
17+
support:
18+
description: Ampiamente disponibile dal JDK 9 (settembre 2017)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: Iterazione inversa di lista
3+
oldApproach: ListIterator manuale
4+
modernApproach: reversed()
5+
summary: "Itera su una lista in ordine inverso con un ciclo for-each pulito."
6+
explanation: "Il metodo reversed() di SequencedCollection restituisce una vista ordinata in senso inverso della lista. Questa vista è supportata dalla lista originale, quindi non si verifica alcuna copia. La sintassi del ciclo for potenziato rende l'iterazione inversa leggibile quanto quella diretta."
7+
whyModernWins:
8+
- icon: 📖
9+
title: Sintassi naturale
10+
desc: "Ciclo for potenziato invece del verboso ListIterator."
11+
- icon:
12+
title: Nessuna copia
13+
desc: "reversed() restituisce una vista — nessun overhead di prestazioni."
14+
- icon: 🧩
15+
title: API coerente
16+
desc: "Funziona su List, Deque, SortedSet in modo uniforme."
17+
support:
18+
description: Ampiamente disponibile dal JDK 21 LTS (settembre 2023)

0 commit comments

Comments
 (0)