【问题标题】:toString() givies null value and why?toString() 给出空值,为什么?
【发布时间】:2022-09-29 11:02:31
【问题描述】:
  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() 的值。为什么我在这里得到空值?我使用字符串缓冲区来附加字符串,但我可以将值作为字符串返回。

  • 你永远不会初始化test1
  • 这里没有使用sub
  • 您的 toString() 几乎没有问题。

标签: java string nullpointerexception null tostring


【解决方案1】:

对我来说,它打印出nullcare ful with NPE,这是可以理解的,因为test1 从未被初始化,所以它的值是null,而nullObject 的字符串表示是"null"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2019-10-18
    • 2016-06-21
    • 2021-10-04
    • 1970-01-01
    • 2020-12-30
    • 2015-07-06
    相关资源
    最近更新 更多