The builder pattern in Java
Java interview exercise on Records, classes & interfaces, difficulty 2 of 3. Solve it in the editor beside a worked example, or cold in Interview mode with the example hidden; the tests run the moment you do.
Write an immutable class HttpRequest with url(), method() and headers() (an unmodifiable Map), built only through HttpRequest.builder().url("...").method("POST").header("k", "v").build(). The method defaults to "GET", headers to an empty map, and build() throws IllegalStateException when no url was given.
Each exercise pairs a worked example with a twin problem to solve in a real editor; the tests run the moment you do. Interview mode hides the example: solve it from memory, without the hint or the solution, and it counts as solved cold. Progress is saved in your browser, and in your account if you sign in.