我正在尝试使用 java 14 的新记录功能,目前处于预览状态。
我知道在 Java 中,每个文件必须有一个公共类,但是新的记录语法非常好而且很短,让一堆文件中的每个文件都有一行代码似乎很浪费。
特别是我想尝试像这样对简单的 AST 进行建模,我认为将所有内容放在一个文件中确实可以提高可读性和理解力。
package com.company;
public interface Expression {
}
public record IntExp(int value) implements Expression {
}
public record AddExp(Expression left, Expression right) implements Expression {
}
public record SubtractExp(Expression left, Expression right) implements Expression {
}
// Etc..
但不幸的是,这不会编译。
所以我的问题是:
有什么方法可以绕过这个限制,或者有什么方法可以将这样的代码全部保存在一个地方?