0 Tage Serie
Code-Bibliothek

Code, der lesenswert ist.

Sorgfältig kuratierte Snippets — TypeScript, Python, Rust, Go und mehr. Jedes mit einer Zeile-für-Zeile-Erklärung, damit du Code so liest, wie die Leute ihn geschrieben haben.

3498 Snippets · 10 Sprachen
▶ Lernen starten
Java · MittelSnippet

Automatisches Ressourcen-Management

Die try-with-resources Anweisung stellt sicher, dass jede Ressource am Ende der Anweisung geschlossen wird, was Speicherlecks und Ressourcenerschöpfung verhindert.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
import java.io.*;
public class TryWithResources {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) {
System.out.println(br.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
}
FehlerbehandlungBest Practices
Java · MittelSnippet

Unveränderlichkeit mit Records

Records sind eine spezielle Art von Klasse, die als transparenter Träger für unveränderliche Daten dient und automatisch Konstruktoren, Accessoren, equals und hashCode generiert.

snippet.java
java
1
2
3
4
5
6
7
8
9
public record User(int id, String name) {}
public class RecordDemo {
public static void main(String[] args) {
User user = new User(1, "Alice");
System.out.println(user.name());
System.out.println(user);
}
}
OOPSyntax
Java · MittelSnippet

Sicherer Umgang mit Null durch Optional

Die Optional-Klasse ist ein Container-Objekt, das das Vorhandensein oder Fehlen eines Wertes darstellt und hilft, NullPointerExceptions zu vermeiden.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Optional;
public class OptionalDemo {
public static void main(String[] args) {
Optional<String> name = Optional.ofNullable(getName());
String result = name.map(String::toUpperCase)
.orElse("DEFAULT");
System.out.println(result);
}
static String getName() { return null; }
}
Best PracticesFehlerbehandlung
Java · MittelSnippet

Stream-API zur Verarbeitung von Collections

Streams ermöglichen funktionale Operationen auf Elementfolgen, wie das effiziente Filtern, Mapping und Reduzieren von Collections.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List<String> names = List.of("Anna", "Bob", "Charlie", "David");
List<String> filtered = names.stream()
.filter(n -> n.length() > 4)
.collect(Collectors.toList());
System.out.println(filtered);
}
}
FunktionenPerformance
Java · MittelSnippet

Funktionale Schnittstellen und Lambda-Ausdrücke

Funktionale Schnittstellen enthalten genau eine abstrakte Methode und können mittels Lambda-Ausdrücken implementiert werden, um eine prägnante Darstellung anonymer Funktionen zu ermöglichen.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
@FunctionalInterface
interface MathOperation {
int operate(int a, int b);
}
public class LambdaExample {
public static void main(String[] args) {
MathOperation addition = (a, b) -> a + b;
System.out.println("Result: " + addition.operate(10, 5));
}
}
FunktionenSyntax
Java · MittelSnippet

Das Strategy-Pattern mit Enums

In Java können Enums abstrakte Methoden haben, die jede Konstante implementieren muss. Dies setzt das Strategy-Entwurfsmuster effektiv um und ermöglicht es, verschiedene Verhaltensweisen mit verschiedenen Enum-Konstanten zu verknüpfen.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
public enum Operation {
PLUS {
public double apply(double x, double y) { return x + y; }
},
MINUS {
public double apply(double x, double y) { return x - y; }
};
public abstract double apply(double x, double y);
}
OOPDesign Patterns
Java · MittelSnippet

Generics: Obere Schranken bei Wildcards

Obere Schranken bei Wildcards (? extends T) erlauben es einer Collection, Objekte vom Typ T oder dessen Unterklassen zu enthalten. Dies ist nützlich, um Daten aus einer Collection zu lesen und dabei die Typsicherheit für verschiedene numerische Typen zu gewährleisten.

snippet.java
java
1
2
3
4
5
6
public double sumOfList(List<? extends Number> list) {
double s = 0.0;
for (Number n : list)
s += n.doubleValue();
return s;
}
OOPSyntax
Java · MittelSnippet

Eigene Annotationen für Metadaten

Eigene Annotationen ermöglichen es, Metadaten zum Code hinzuzufügen, die zur Laufzeit mittels Reflection verarbeitet werden können. Dies wird oft von Frameworks für Querschnittsaufgaben wie Logging oder Validierung genutzt.

snippet.java
java
1
2
3
4
5
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface LogExecutionTime {
String value() default "Generic";
}
OOPBest Practices