Skip to content

Commit b84a2ec

Browse files
committed
引入自定义ToString工具类和方法,便于查看部分bean对象值
1 parent 4959966 commit b84a2ec

File tree

49 files changed

+228
-359
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+228
-359
lines changed

weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/WxCardApiSignature.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package me.chanjar.weixin.common.bean;
22

3-
import java.io.Serializable;
3+
import me.chanjar.weixin.common.util.ToStringUtils;
44

5-
import org.apache.commons.lang3.builder.ToStringBuilder;
6-
import org.apache.commons.lang3.builder.ToStringStyle;
5+
import java.io.Serializable;
76

87
/**
98
* 卡券Api签名
@@ -35,7 +34,7 @@ public class WxCardApiSignature implements Serializable {
3534

3635
@Override
3736
public String toString() {
38-
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
37+
return ToStringUtils.toSimpleString(this);
3938
}
4039

4140
public String getAppId() {

weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuButton.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package me.chanjar.weixin.common.bean.menu;
22

3+
import me.chanjar.weixin.common.util.ToStringUtils;
4+
35
import java.util.ArrayList;
46
import java.util.List;
57

6-
import org.apache.commons.lang3.builder.ToStringBuilder;
7-
import org.apache.commons.lang3.builder.ToStringStyle;
8-
98
public class WxMenuButton {
109

1110
private String type;
@@ -18,10 +17,9 @@ public class WxMenuButton {
1817

1918
@Override
2019
public String toString() {
21-
return ToStringBuilder.reflectionToString(this,
22-
ToStringStyle.MULTI_LINE_STYLE);
20+
return ToStringUtils.toSimpleString(this);
2321
}
24-
22+
2523
public String getType() {
2624
return this.type;
2725
}
@@ -69,4 +67,4 @@ public String getMediaId() {
6967
public void setMediaId(String mediaId) {
7068
this.mediaId = mediaId;
7169
}
72-
}
70+
}

weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuRule.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package me.chanjar.weixin.common.bean.menu;
22

3-
import org.apache.commons.lang3.builder.ToStringBuilder;
4-
import org.apache.commons.lang3.builder.ToStringStyle;
3+
import me.chanjar.weixin.common.util.ToStringUtils;
54

65
public class WxMenuRule {
76
private String tagId;
@@ -70,6 +69,6 @@ public void setLanguage(String language) {
7069

7170
@Override
7271
public String toString() {
73-
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
72+
return ToStringUtils.toSimpleString(this);
7473
}
75-
}
74+
}

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/StringUtils.java

Lines changed: 0 additions & 98 deletions
This file was deleted.
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package me.chanjar.weixin.common.util;
2+
3+
import org.apache.commons.lang3.StringUtils;
4+
import org.apache.commons.lang3.builder.ToStringBuilder;
5+
import org.apache.commons.lang3.builder.ToStringStyle;
6+
7+
/**
8+
* <pre>
9+
* 自定义的ToString方法,用于产生去掉空值属性的字符串
10+
* Created by Binary Wang on 2016-10-27.
11+
* @author <a href="https://github.com/binarywang">binarywang(Binary Wang)</a>
12+
* </pre>
13+
*/
14+
public class ToStringUtils {
15+
public static final ToStringStyle THE_STYLE = new SimpleMultiLineToStringStyle();
16+
private static class SimpleMultiLineToStringStyle extends ToStringStyle {
17+
private static final long serialVersionUID = 4645306494220335355L;
18+
private static final String LINE_SEPARATOR = "\n";
19+
private static final String NULL_TEXT = "<null>";
20+
21+
public SimpleMultiLineToStringStyle() {
22+
super();
23+
this.setContentStart("[");
24+
this.setFieldSeparator(LINE_SEPARATOR + " ");
25+
this.setFieldSeparatorAtStart(true);
26+
this.setContentEnd(LINE_SEPARATOR + "]");
27+
this.setNullText(NULL_TEXT);
28+
this.setUseShortClassName(true);
29+
this.setUseIdentityHashCode(false);
30+
}
31+
}
32+
33+
/**
34+
* 用于产生去掉空值属性并以换行符分割各属性键值的toString字符串
35+
* @param obj
36+
*/
37+
public static String toSimpleString(Object obj) {
38+
String toStringResult = ToStringBuilder.reflectionToString(obj, THE_STYLE);
39+
String[] split = toStringResult.split(SimpleMultiLineToStringStyle.LINE_SEPARATOR);
40+
StringBuilder result = new StringBuilder();
41+
for (String string : split) {
42+
if (string.endsWith(SimpleMultiLineToStringStyle.NULL_TEXT)) {
43+
continue;
44+
}
45+
46+
result.append(string + SimpleMultiLineToStringStyle.LINE_SEPARATOR);
47+
}
48+
49+
if (result.length() == 0) {
50+
return "";
51+
}
52+
53+
//如果没有非空的属性,就输出 <all null properties>
54+
if (StringUtils.countMatches(result, SimpleMultiLineToStringStyle.LINE_SEPARATOR) == 2) {
55+
return result.toString().split(SimpleMultiLineToStringStyle.LINE_SEPARATOR)[0]
56+
+ "<all null values>]";
57+
}
58+
59+
return result.deleteCharAt(result.length() - 1).toString();
60+
}
61+
}

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/DefaultApacheHttpClientBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package me.chanjar.weixin.common.util.http;
22

3-
import me.chanjar.weixin.common.util.StringUtils;
3+
import org.apache.commons.lang3.StringUtils;
44
import org.apache.http.annotation.NotThreadSafe;
55
import org.apache.http.auth.AuthScope;
66
import org.apache.http.auth.UsernamePasswordCredentials;

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/MediaDownloadRequestExecutor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import me.chanjar.weixin.common.bean.result.WxError;
44
import me.chanjar.weixin.common.exception.WxErrorException;
5-
import me.chanjar.weixin.common.util.StringUtils;
65
import me.chanjar.weixin.common.util.fs.FileUtils;
6+
import org.apache.commons.lang3.StringUtils;
77
import org.apache.http.Header;
88
import org.apache.http.HttpHost;
99
import org.apache.http.client.config.RequestConfig;

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/URIUtil.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package me.chanjar.weixin.common.util.http;
22

3-
import me.chanjar.weixin.common.util.StringUtils;
3+
4+
import org.apache.commons.lang3.StringUtils;
45

56
import java.io.UnsupportedEncodingException;
67

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpInMemoryConfigStorage.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package me.chanjar.weixin.cp.api;
22

3-
import java.io.File;
4-
5-
import org.apache.commons.lang3.builder.ToStringBuilder;
6-
import org.apache.commons.lang3.builder.ToStringStyle;
7-
83
import me.chanjar.weixin.common.bean.WxAccessToken;
4+
import me.chanjar.weixin.common.util.ToStringUtils;
95
import me.chanjar.weixin.common.util.http.ApacheHttpClientBuilder;
106

7+
import java.io.File;
8+
119
/**
1210
* 基于内存的微信配置provider,在实际生产环境中应该将这些配置持久化
1311
*
@@ -203,7 +201,7 @@ public void setHttpProxyPassword(String httpProxyPassword) {
203201

204202
@Override
205203
public String toString() {
206-
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
204+
return ToStringUtils.toSimpleString(this);
207205
}
208206

209207
@Override

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
package me.chanjar.weixin.mp.api;
22

33
import me.chanjar.weixin.common.bean.WxAccessToken;
4+
import me.chanjar.weixin.common.util.ToStringUtils;
45
import me.chanjar.weixin.common.util.http.ApacheHttpClientBuilder;
56

67
import javax.net.ssl.SSLContext;
7-
8-
import org.apache.commons.lang3.builder.ToStringBuilder;
9-
import org.apache.commons.lang3.builder.ToStringStyle;
10-
118
import java.io.File;
129

1310
/**
@@ -43,7 +40,7 @@ public class WxMpInMemoryConfigStorage implements WxMpConfigStorage {
4340
* 临时文件目录
4441
*/
4542
protected volatile File tmpDirFile;
46-
43+
4744
protected volatile SSLContext sslContext;
4845

4946
protected volatile ApacheHttpClientBuilder apacheHttpClientBuilder;
@@ -62,7 +59,7 @@ public boolean isAccessTokenExpired() {
6259
public synchronized void updateAccessToken(WxAccessToken accessToken) {
6360
updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn());
6461
}
65-
62+
6663
@Override
6764
public synchronized void updateAccessToken(String accessToken, int expiresInSeconds) {
6865
this.accessToken = accessToken;
@@ -229,7 +226,7 @@ public void setHttpProxyPassword(String httpProxyPassword) {
229226

230227
@Override
231228
public String toString() {
232-
return ToStringBuilder.reflectionToString(this,ToStringStyle.MULTI_LINE_STYLE);
229+
return ToStringUtils.toSimpleString(this);
233230
}
234231

235232
@Override
@@ -263,7 +260,7 @@ public void setTmpDirFile(File tmpDirFile) {
263260
public SSLContext getSSLContext() {
264261
return this.sslContext;
265262
}
266-
263+
267264
public void setSSLContext(SSLContext context) {
268265
this.sslContext = context;
269266
}

0 commit comments

Comments
 (0)