DEV Community

Cheol Jeon
Cheol Jeon

Posted on

JPlus – A Java Superset with Null Safety and Boilerplate Elimination

JPlus is a modern programming language and compiler that acts as a superset of Java —

bringing the benefits of null safety, concise syntax, and powerful declarative features

while remaining fully interoperable with existing Java code and libraries.


✨ Why JPlus?

Java is a powerful and battle-tested language, but developers often face:

  • Verbose boilerplate (getters/setters, constructors, etc.)
  • Dangerous NullPointerExceptions
  • Lack of modern language features like ?: (Elvis), smart casts, or pattern matching

JPlus solves this by introducing modern features on top of Java — without breaking compatibility.

JPlus code compiles to standard JVM bytecode, enabling full use of Java libraries and frameworks.


🔐 Null Safety & Modern Syntax Features

JPlus enforces strict null checks at compile-time and introduces Kotlin-style operators:

Feature Description
Type vs Type? Explicit non-nullable and nullable types
?. Null-safe access operator
?: Elvis operator for default/fallback values
Smart Casts Safe type narrowing after null checks
Type Inference Reduce verbosity, no need to declare obvious types
Pattern Matching Clean switch/if logic with type-safe guards
Async Syntax (planned) Future-ready syntax with async/await support

🔧 NEW: apply Syntax for Replacing Lombok

JPlus introduces the new apply statement — a powerful declarative alternative to Lombok annotations.

🔁 Replace This:

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User {
    private String name;
    private int age;
}
Enter fullscreen mode Exit fullscreen mode

✅ With This:

apply data, builder, constructors(all, no);  

public class User {     
    private String name;     
    private int age; 
}
Enter fullscreen mode Exit fullscreen mode

💡 Even Nested Classes:

apply data, constructor(required, all, no), builder;  
apply {  
    User.Profile: getter, setter, equality, constructor(all);
}  

public class User {  
    private String name;    
    private int age;  

    public class Profile {        
        String nickname;    
    }
}

Enter fullscreen mode Exit fullscreen mode

All boilerplate — constructors, getters/setters, toString, equals, builder — generated as plain Java.

For full code and output, see:

Go to Example 6


🔭 Coming Soon: IntelliJ Plugin

We are actively developing an IntelliJ IDEA plugin to provide:

  • 🔍 Syntax highlighting and autocomplete for .jplus files

  • ⚠️ Real-time null-check error detection

  • 🚀 One-click compile-to-Java and build integration

Stay tuned — the plugin will make JPlus production-ready for real-world development!


💝 Support Development

JPlus is a one-person open-source project under active development.

If you find value in this work and want to help shape the future of Java development:

👉 Github Sponsors

👉 Support the Project via PayPal

Your contribution supports language tooling, plugin development, and community outreach.

The benefits will ripple across the entire Java community.


💬 Get Involved

  • ⭐ Star the project on GitHub

  • 🐛 Report bugs and suggest features

  • 🧠 Contribute code or docs

  • 💬 Join the community discussions (coming soon)


🔗 Learn More


JPlus is here to modernize Java while respecting its legacy.

Let's build a safer, cleaner, and more expressive future — together.

Top comments (0)