Code Explainers
Code explainers tagged #records
java
public record ServerConfig( String host, int port, Duration timeout,
Loading typed config into a Java record
records
factory-methods
parsing
Intermediate
7 steps
java
public record FixedWidthField(String name, int start, int end) { public String extract(String line) { int from = Math.min(start, line.length());
Parsing fixed-width text in Java
records
parsing
streams
Intermediate
7 steps
java
@RestController @RequestMapping("/api/payments") public class PaymentController {
Polymorphic payment requests in Spring
polymorphic deserialization
sealed interfaces
bean validation
Advanced
7 steps
java
public class GitHubUserClient { private final HttpClient http = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10))
Calling the GitHub API with Java's HttpClient
http-client
json-deserialization
error-handling
Intermediate
9 steps
java
public final class AccessLogParser { private static final Pattern LINE = Pattern.compile( "^(?<ip>\\S+) \\S+ \\S+ \\[(?<time>[^\\]]+)\\] "
Parsing Apache access logs in Java
regex
named-groups
parsing
Intermediate
7 steps
java
import java.util.List; import java.util.IntSummaryStatistics; public class OrderReport {
Aggregating stats with IntSummaryStatistics
streams
aggregation
records
Intermediate
5 steps
java
public record ServerConfig(String host, int port, boolean tls, List<String> allowedOrigins) { public ServerConfig { Objects.requireNonNull(host, "host is required");
Validating config with a Java record
records
validation
immutability
Intermediate
9 steps
java
@RestController @RequestMapping("/api/users") public class UserController {
How a Spring REST controller maps users
rest-api
dependency-injection
dto-mapping
Intermediate
7 steps
java
package com.example.payments.config; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotBlank;
Type-safe config with Spring records
configuration
validation
records
Intermediate
6 steps