public final class ModelInput {
private long userid;
private long clientid;
private long timeout = 500L;
private Preference pref;
private boolean debug;
private Map<String, String> parameterMap;
public ModelInput(long userid, long clientid, Preference pref, Map<String, String> parameterMap, long timeout, boolean debug) {
this.userid = userid;
this.clientid = clientid;
this.pref = pref;
this.parameterMap = parameterMap;
this.timeout = timeout;
this.debug = debug;
}
... //getters here
}
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("attribute", "segmentation");
ModelInput input = new ModelInput(109739281L, 20L, Preference.SECONDARY, paramMap, 1000L, true);
构造函数必须具有强制参数。因此,在您的例子中,如果userId、clientId和parameterMap是必需的,我们将得到如下内容:
public final class ModelInput {
private long userid;
private long clientid;
private long timeout = 500L;
private Preference pref;
private boolean debug;
private Map<String, String> parameterMap;
public ModelInput(Builder builder) {
this.userid = builder.userId;
this.clientid = builder.clientId;
this.pref = builder.preference;
this.parameterMap = builder.parameterMap;
this.timeout = builder.timeout;
this.debug = builder.debug;
}
public static class Builder {
private long userId;
private long clientId;
private Preference preference;
private boolean debug;
private Map<String, String> parameterMap;
public Builder(long userId, long clientId, Map<String, String> parameterMap) {
this.userId = userId;
this.clientId = clientId;
this.parameterMap = parameterMap;
}
public Builder preference(Preference preference) {
this.preference = preference;
return this;
}
public Builder debug(boolean debug) {
this.debug = debug;
return this;
}
public Builder timeout(long timeout) {
this.timeout = timeout;
return this;
}
...
public ModelInput build() {
return ModelInput(this);
}
}
// ModelInput getters / setters
}
下面是如何使用生成器类:
String paramMap = new HashMap<String, String>();
paramMap.put("attribute", "segmentation");
ModelInput.Builder builder = new ModelInput.Builder(109739281L, 20L, paramMap);
builder.preference(Preference.SECONDARY).timeout(1000L).debug(true);
ModelInput modelInput = builder.build();
希望这有帮助:)
问题内容: 我试图在下面的类中使用Builder模式。最初,我使用类的构造函数来设置所有参数,但是偶然地我碰到了Builder模式,它对我的用例非常有用。 下面是我的课程,人们通常会通过,而总是,但其他字段是可选的,他们可能会或可能不会通过。而且,如果他们没有传递任何超时值,我需要将默认超时值始终设置为500,但是如果他们传递任何超时值,则它应该覆盖我的默认超时值。这里,Preference是
Android新构建系统需要Gradle 1.10+版本。如何在内部配置?
我有以下字符串: 我需要一个正则表达式来删除数字之间的空白,但也要避免在数字之前有一个非数字值,如 这里想要避免任何非数值后面的数值,这里在我的字符串中想要避免数值也在H后面,这里有2,但我只想做一个像“23445 2546”这样的字符串。如果有任何字母字符在那里,它应该被删除,并添加空格之间的数字。 从上面的正则表达式和代码,我得到了输出: 所需输出:
问题内容: 我想 远程 更改Jenkins构建说明。我准备好了所有脚本,但有一个小问题:多行描述。 我在Jenkins中使用REST API和JSON下载旧描述: `curl命令退出: ( 注意 :我添加了换行符以使上面的内容更易于阅读。这被单行提取)。 这些是单独的行,所以我这样做: 变为: ( 注意 :新行是值的一部分。这是三行描述。) 我的程序(取决于命令行参数)可以替换,附加或在构建之前添
我正在运行一个内存密集型应用程序。一些关于环境的信息: 64位debian 13 GB RAM 64位JVM(我的程序运行时输出System.getProperty("sun.arch.data.model"),它说"64") 下面是我发出的确切命令: Java-xmx 9000m-jar " ale . jar " test config 我已经用同样精确的数据、配置等运行了程序。在其他几个系统
NotConnectedException:45000 ms后无法连接到端口7055上的主机127.0.0.1。Firefox控制台输出: