Builder 注释了一个 private class?
Builder annotates a private class?
@Data
@Builder
public class ClassA {
private ClassB b;
private String createdBy;
private class ClassB {
String name;
int version;
}
}
你好,我想用这种方式在另一个 java 文件中创建 ClassA:
ClassA.builder().createdBy("Alex")
.b(ClassB.builder()
.name("Game")
.version(2).build())
.build();
私人 class classB
这可能吗?
感谢
我推荐如下:
@Data
@Builder
public class ClassA {
private ClassB b;
private String createdBy;
@Builder
@Data
static class ClassB {
String name;
int version;
}
}
如果你想要不可见的ClassB,那是不可能的。并且要在内部 class 上使用 @Builder
, class 必须是静态的 class
private
修饰符表示该变量仅对此 class 可见。因此,如果您在 class A
中创建 private class B
,则意味着 B 仅对 A 可见。
正如@sweeper 在评论中所说,您不能在另一个文件中使用 class B
/ class 除了 class A
.
如果你还想用那种方式,你可以独立创建class B。
ClassA.class
@Data
@Builder
public class ClassA {
private ClassB b;
private String createdBy;
}
ClassB.class
@Data
@Builder
class ClassB {
String name;
int version;
}
@Data
@Builder
public class ClassA {
private ClassB b;
private String createdBy;
private class ClassB {
String name;
int version;
}
}
你好,我想用这种方式在另一个 java 文件中创建 ClassA:
ClassA.builder().createdBy("Alex")
.b(ClassB.builder()
.name("Game")
.version(2).build())
.build();
私人 class classB
这可能吗?
感谢
我推荐如下:
@Data
@Builder
public class ClassA {
private ClassB b;
private String createdBy;
@Builder
@Data
static class ClassB {
String name;
int version;
}
}
如果你想要不可见的ClassB,那是不可能的。并且要在内部 class 上使用 @Builder
, class 必须是静态的 class
private
修饰符表示该变量仅对此 class 可见。因此,如果您在 class A
中创建 private class B
,则意味着 B 仅对 A 可见。
正如@sweeper 在评论中所说,您不能在另一个文件中使用 class B
/ class 除了 class A
.
如果你还想用那种方式,你可以独立创建class B。
ClassA.class
@Data
@Builder
public class ClassA {
private ClassB b;
private String createdBy;
}
ClassB.class
@Data
@Builder
class ClassB {
String name;
int version;
}