【发布时间】:2014-02-26 22:36:02
【问题描述】:
我为查找表创建了一个构建器并使用它,如下所示。
public class RaceCodeDataBuilder {
private RaceCode raceCode;
public RaceCodeDataBuilder() {
raceCode = new RaceCode();
}
public RaceCodeDataBuilder code(String code) {
raceCode.setCode(code);
return this;
}
public RaceCodeDataBuilder displayName(String displayName) {
raceCode.setDisplayName(displayName);
return this;
}
public RaceCode build() {
return raceCode;
}
}
在测试中使用此构建器:
RaceCode mockRaceCode = new RaceCodeDataBuilder()
.code("2054-5")
.displayName("Black or African American")
.build();
我期待更多类似的构建器用于其他查找表,例如 StateCodeBuilder、GenderCodeBuilder,它们都只有“代码”和“显示名称”,类似于上面的构建器。
我想创建一个通用构建器,并避免创建多个构建器类以不同的名称执行相同的工作。
我在泛型中尝试了一些东西,但我还差得很远..
public class CodeDataBuilder<T>{
private T t;
public CodeDataBuilder(T t) {
this.t = t;
}
public CodeDataBuilder code(String code) {
raceCode.setCode(code); // Cant write T.setCode here for obvious resons
return this;
}
public CodeDataBuilder displayName(String displayName) {
raceCode.setDisplayName(displayName); // Cant write T.setDisplayNamehere for obvious resons
return this;
}
public T build() {
return t;
}
}
有人可以帮我吗?
谢谢。
【问题讨论】:
-
创建一个接口,这样所有实现该接口的类都会保证有一定的方法,例如
.setCode()。将T转换为Interface,您可以访问它的方法。
标签: java generics design-patterns