Skip to content

Instantly share code, notes, and snippets.

View diskria's full-sized avatar
🎯
Focusing

diskria diskria

🎯
Focusing
View GitHub Profile
@diskria
diskria / MulticlassJavaFile.kt
Last active July 15, 2026 07:55
A workaround for JavaPoet to generate a single Java file containing multiple top-level classes.
/**
* A workaround for JavaPoet to generate a single Java file containing multiple top-level classes.
*
* JavaPoet's `JavaFile` natively enforces the "one top-level class per file" rule. This class renders
* each [TypeSpec] to its own source and splits it into package, imports, and type body, merging
* multiple definitions into a single file while de-duplicating imports.
*/
class MulticlassJavaFile private constructor(
val packageName: String?,
val fileName: String,