Java deepToString中的此条件何时计算为true?
我正在查看该方法,无法理解以下情况Java deepToString中的此条件何时计算为true?,java,Java,我正在查看该方法,无法理解以下情况 public static String deepToString(Object[] a) { if (a == null) return "null"; int bufLen = 20 * a.length; if (a.length != 0 && bufLen <= 0) bufLen = Integer.MAX_VALUE; StringBuilder buf
public static String deepToString(Object[] a) {
if (a == null)
return "null";
int bufLen = 20 * a.length;
if (a.length != 0 && bufLen <= 0)
bufLen = Integer.MAX_VALUE;
StringBuilder buf = new StringBuilder(bufLen);
deepToString(a, buf, new HashSet<>());
return buf.toString();
}
公共静态字符串deepToString(对象[]a){
如果(a==null)
返回“null”;
int bufLen=20*a.长度;
如果(a.length!=0&&bufLen只有当a.length
非常大,以至于20*a.length
无法放入int
数据类型时,它才会返回true。但是,我不确定这是否会发生。如果a.length
大于Integer.MAX\u值/20
,bufLen
将溢出并变为负反复无常
因此,代码将其设置为可能的最大整数值。例如,当bufLen
溢出时