【问题标题】:Android ArrayList Strange Null Pointer ExceptionAndroid ArrayList 奇怪的空指针异常
【发布时间】:2013-04-07 02:55:01
【问题描述】:

我对这段代码有疑问:

 for(int i2=0;i2<ftdata.size();i2++){
        System.out.println("FTDATASIZE: " +ftdata.get(i2)); // here pass and shows null
        String test=ftdata.get(i2); // here gets Null Pointer Exception ????
        if(test.equals("null")){

        }
    }

System.out 在 LogCat "FTDATASIZE: null" 中显示,但我在 "String test=ftdata.get(i2);" 这一行出现错误我不明白?为什么我得到空指针异常?

    04-07 05:42:36.309: I/System.out(12983): STDATASIZE: 1
    04-07 05:42:36.309: I/System.out(12983): FTDATASIZE: 1
    04-07 05:42:36.309: I/System.out(12983): FTDATASIZE: null
    04-07 05:42:36.309: W/dalvikvm(12983): threadid=10: thread exiting with uncaught exception (group=0x40166560)
    04-07 05:42:36.309: E/AndroidRuntime(12983): FATAL EXCEPTION: Thread-11
    04-07 05:42:36.309: E/AndroidRuntime(12983): java.lang.NullPointerException
    04-07 05:42:36.309: E/AndroidRuntime(12983):    at soft.ProDb.distanceRunsMonthly(ProDb.java:22718)
    04-07 05:42:36.309: E/AndroidRuntime(12983):    at soft.ProDb.runsMonthly(ProDb.java:22593)
    04-07 05:42:36.309: E/AndroidRuntime(12983):    at soft.SHtmlM.exportALLHtml(StringaHtmlM.java:111)
    04-07 05:42:36.309: E/AndroidRuntime(12983):    at soft.ProDb$1.run(ProDb.java:12714)
    04-07 05:42:36.309: E/AndroidRuntime(12983):    at java.lang.Thread.run(Thread.java:1019)

好的 固定

这对我有用

 if(ftdata.size()==1&& ftdata.get(0)==null){
        ftdata=stdata;
    }

只是想测试一下 ftdata.get(0) 是否为空

【问题讨论】:

  • 请从 logcat 发布堆栈跟踪...
  • ftdata.get(i2) 为空,不能将空值传递给字符串???
  • 这不是 android 特定的问题
  • 这不是 Android "04-07 05:42:36.309: E/AndroidRuntime(12983):" ?!

标签: java android arraylist nullpointerexception


【解决方案1】:

空指针位于if(test.equals("null")){ 行上,因为testnull,而您正试图在其上调用.equals()

如果您尝试检查字符串是否为空,请改用if (test == null)

如果您要检查字符串的值是否为“null”,请改用if ("null".equals(test))

【讨论】:

  • 你是对的!但是我怎样才能将空值传递给字符串以便 test="null" ?必须等待 5 分钟才能接受
【解决方案2】:

试试这个:

for(int i2=0;i2<ftdata.size();i2++){
        System.out.println("FTDATASIZE: " +ftdata.get(i2));
        String test; 
        if(ftdata.get(i2)!=null){
            test = ftdata.get(i2);
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2014-07-19
    相关资源
    最近更新 更多