toString() 给出 null 值,为什么?

toString() givies null value and why?

提问人:ramulu 提问时间:9/21/2022 最后编辑:Dr Midoramulu 更新时间:9/29/2022 访问量:73

问:

  public class TestString {
            public Test test1;
    
                  @Override
            public String toString() {
                StringBuilder sub = new StringBuilder();
                sub.append(test1);
                sub.append("care ful with NPE");
                return test1 +"care ful with NPE";
            }
    
            public static void main(String[] args) {
                final TestString testToString = new TestString();
                System.out.println(testToString);
                
            }
        }
 public class Test {
        private final String fieldName;

   public Test() {
            fieldName = "";
        }
        public Test(String fieldName) {
            this.fieldName = fieldName;
        }
    
        public String toString() {
            StringBuilder sub = new StringBuilder();
            sub.append("xxxasd");
            return "xxxasd";
        }
        public int hashCode() {
            return fieldName.hashCode();
        }
    
    }

如何获取test1 toString()的值,为什么我在这里得到null值?我使用字符串缓冲区来附加字符串,但我可以将值作为字符串返回。

java 字符串 nullpointerexception null tostring

评论

1赞 VLAZ 9/21/2022
您从不初始化test1
0赞 Joop Eggen 9/21/2022
这里没有使用。sub
0赞 Cheng Thao 9/22/2022
你的 toString() 几乎没有问题。

答:

-1赞 Szellem 9/21/2022 #1

对我来说,它打印出来是可以理解的,因为它从未初始化过,所以它的值是,而 a 的 String 表示形式是 。nullcare ful with NPEtest1nullnullObject"null"