【问题标题】:android function in class throws java.lang.NullPointerException类中的 android 函数抛出 java.lang.NullPointerException
【发布时间】:2011-10-26 14:58:54
【问题描述】:

我创建了一个包含一些字符串和整数的类,在该类中我创建了一个函数将类中的数据转换为可读的字符串;

    public String GetConditions() {
        String BigString = null;
        String eol = System.getProperty("line.separator");  
        try {
            BigString += "Depth: " + ci(Depth) + eol;

and so on...

因为我要转换很多整数,所以我做了一个额外的函数来将整数转换为字符串;

public String ci(Integer i) { 
    // convert integer to string
    if (i != null) {
        String a = new Integer(i).toString();
    return  a;
    } else {
    return "n/a";
    }
}

这会在return a 上引发NullPointerException 异常。我对 Java 很陌生,这可能是一个菜鸟问题...抱歉,提前谢谢!

【问题讨论】:

    标签: android class methods nullpointerexception return


    【解决方案1】:

    有一种更简单的方法可以将Integer 转换为String:使用String#valueOf(int)

    public String ci(Integer i)
    {
        return i == null ? "n/a" : String.valueOf(i);
    }
    

    【讨论】:

      【解决方案2】:

      尝试将您在方法中传递的Integer 转换为字符串,而不是实例化一个新的。

      你可以直接这样做:

      String a = i.toString();

      String a = Integer.toString(i.intValue());

      【讨论】:

      • Integer 转换为String 甚至不会编译。
      • 谢谢大家,但我发现了问题,我试图在字符串中添加一些东西,它是 'null' ,这一行: String BigString = null;
      • @Lectere,真的吗?在普通的 Java 中,我得到了这个:ideone.com/2JaH8 - 所以一定是 Android 在这方面的工作方式不同?
      【解决方案3】:

      谢谢大家,但我发现了问题,我试图在字符串中添加一些东西,它是 'null' ,这一行:

      String BigString = null; 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-11
        • 1970-01-01
        • 1970-01-01
        • 2017-11-07
        相关资源
        最近更新 更多