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; 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. Progress is saved in your browser, and in your account if you sign in.