从内部记录访问非静态外部上下文

Access non-static outer context from within inner record

免责声明我已经有一段时间没有在这里提问了,所以请对我温柔一点:)

我正在尝试从我的业务对象生成一个状态,理想情况下,它应该保持封装状态。我的想法是定义一个具有内部表示的 class 并有一种方法来 return 一个状态对象,稍后将映射到不同的视图表示。所以我想象了这样的事情:

State state = order.State();

其中 Order 和 State 的定义如下:

public class Order {
    private String identifier;

    record State(String number) {
        public State() {
            this(identifier);
        }
    }
}

所以我的问题是如何定义内部记录和外部记录之间的关系 class,以便我可以访问实例属性(最好使用 with默认记录构造函数)并将它们映射到不可变结构上而不 运行 进入静态、非静态上下文问题?

(我排除了在外部 class 上创建其他方法的可能性,例如:toState()

将方法从记录移至 class。

public class Order {
    private String identifier;

    public State state() {
        return new State(identifier);
    }

    record State(String number){}
}