JPlus is fully compatible with Java, offering modern language features like null safety, boilerplate code generation and other modern language features to reduce developer burden and maximize productivity.
Notably, there is currently no ‘superset’ language that keeps Java syntax almost intact while extending the language with features like null checks at the language level. JPlus aims to fill this gap, providing a language that existing Java developers can naturally learn and adopt.


I want to write functions that fail at compile time if called with a null object. You can use annotations to kinda do this, but they do not produce compile errors.
But you should just throw an exemption, and let the caller handle it. There is so many variations where an object is null, you can’t control, or you are deep inside your own code, it should be covered by a test.
The problem is that when an project is too big and a method is called from multiple contexts it’s very easy to lose track of the context where the null check has been done and where it hasn’t. This leads to a lot of duplicated null checks around the project and the constant paranoia of “can this be null here?”.
A much better way of doing this is using the
Optionalwhen an Object can be “null” and a direct instance where it cannot. This way, at any given context you know for absolute sure if a null check is needed or not. However, even with annotations this does not throw a compile error…This is exactly the core problem that JPlus aims to solve.