JSR 305 became a de-facto standard despite its many problems. I advise to use it for nullability until something better is adopted by Kotlin and major IDEs. Introduction When it comes to nullability annotations in Java, there is no official standard. In this post, I describe: what my requirements with […]
Yearly Archives: 2019
This post features five (mostly well-known) refactoring principles applied when refactoring real open-source code (Gradle Modules Plugin). Context When I worked on separate compilation of module-info.java for Gradle Modules Plugin (PR #73), I noticed potential for some refactoring. As a result, I filed issue #79 and later resolved it with […]
Find out how to use Gradle to build Java 6-8 libraries that support JPMS (Java Platform Module System) by providing Java 9 module-info.class. EDIT (May 4, 2019): TL;DR → Use Gradle Modules Plugin for that. Introduction If you need introduction to JPMS itself, check out this nice overview. This post […]
Accumulative is an interface proposed for the intermediate accumulation type A of Collector<T, A, R> in order to make defining custom Java Collectors easier. Introduction If you’ve ever used Java Streams, you most likely used some Collectors, e.g.: Collectors.toList Collectors.toMap But have you ever used… A composed Collector? It takes […]
Filterer is a pattern that should be applied only in certain cases. In the original post, I presented a very simple example intended to show how to apply it. In this post, I present a much more detailed example that’s intended to also explain when and why to apply it. […]