繁体   English   中英

为什么我不能设置 request.attributes 的值?

[英]Why can't i set the values of request.attributes?

 public class Request { String attribute1; String attribute2; String attribute3; String s1 = "attr1 is:"+ attribute1+", attr2 is: "+attribute2+", "+"attr3 is: "+attribute3; @Override public String toString() { return "[" + s1 + "]"; } }
 package com.test; public class RequestBuilder { private final Request request; public RequestBuilder() { request = new Request(); } public static void main(String[] args) { System.out.println(new RequestBuilder().setAttr1("one").setAttr3("three").buildrequest()); } public Request buildrequest() { return request; } public RequestBuilder setAttr1(String attr1) { request.attribute1 = attr1; return this; } public RequestBuilder setAttr2(String attr2) { request.attribute2 = attr2; return this; } public RequestBuilder setAttr3(String attr3) { request.attribute3 = attr3; return this; } }

Output:[attr1 为:null,attr2 为:null,attr3 为:null]

我正在尝试创建一个 RequestBuilder class ,它可以仅使用没有任何构造函数的设置器动态地将值添加到请求正文。 我期望 attr1 和 attr3 值不是 null。 我究竟做错了什么?

您的 toString 方法有问题,您正在创建 s1 变量,该变量在使用默认值创建 object 时被初始化,如下所示更改您的 toString 方法,它将起作用-

 @Override public String toString() { return "[" + "attr1 is:"+ attribute1+", attr2 is: "+attribute2+", "+"attr3 is: "+attribute3 + "]"; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM