请求处理失败;嵌套异常是java.lang.NullPointerException当使用String of String时

时间:2015-09-01 10:09:58

标签: java arrays nullpointerexception

我有一个问题,如何获得数组字符串,它给我这个错误:

  

请求处理失败;嵌套异常是java.lang.NullPointerException

错误明细:

java.lang.NullPointerException
com.max.common.CampaignSyncEntity.getSyncAdKeywords(CampaignSyncEntity.java:249)
com.max.adwords.testsync.AWSyncTest.runSyncTest(AWSyncTest.java:21)
com.max.web.controller.CampaignSync.uploadMultipleFileHandler(CampaignSync.java:25)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

似乎在获取字符串的Null数组时会发生此错误。

这是获取空数组的代码:

public class AWSyncTest {
static CampaignSyncEntity syncEntity = new CampaignSyncEntity();
public void runSyncTest() {

    System.out.println("CAMPAIGN NAME: "+syncEntity.getSyncCampaignName());
    System.out.println("CAMPAIGN ID: "+syncEntity.getSyncCampaignId());
    System.out.println("AD GROUP NAME: "+syncEntity.getSyncAdGroupName());
    System.out.println("AD GROUP ID: "+syncEntity.getSyncAdGroupId());
    System.out.println("AD STATUS: "+syncEntity.getSyncAdStatus());
    System.out.println("TEXT AD TYPE: "+syncEntity.getSyncTextAdType());
    System.out.println("TEXT HEADLINE: "+syncEntity.getSyncTextHeadline());
    System.out.println("TEXT DESCRIPTION 1: "+syncEntity.getSyncTextDesc1());
    System.out.println("TEXT DESCRIPTION 2: "+syncEntity.getSyncTextDesc2());
    System.out.println("TEXT DISPLAY URL: "+syncEntity.getSyncTextDisplayURL());
    System.out.println("TEXT FINAL URL: "+syncEntity.getSyncTextFinalURL());
    System.out.println("KEYWORDS: "+Arrays.toString(syncEntity.getSyncAdKeywords()));
    System.out.println("NEGATIVE KEYWORD: "+syncEntity.getSyncAdNegativeKeywords());
    System.out.println("MATCH TYPE: "+syncEntity.getSyncAdMatchType());
    System.out.println("AD CRITERIA TYPE: "+syncEntity.getSyncAdCriteriaType());
    System.out.println("LOCATION: "+syncEntity.getSyncLocation());
    System.out.println("LOCATION ID: "+syncEntity.getSyncLocationId());

}

}

希望你们能帮助我解决我的问题,提前谢谢

2 个答案:

答案 0 :(得分:0)

你可以检查一下......

}

我指的是System.out.println("KEYWORDS: "+Arrays.toString(syncEntity.getSyncAdKeywords())); 返回的内容。

如果它返回syncEntity.getSyncAdKeywords()问题就在那里..

答案 1 :(得分:0)

错误意味着您的代码正在尝试对尚未初始化的成员/变量执行某些操作 - 它为空。正如您在回溯中看到的那样,错误发生在string

当你跳到这一行时,很可能你会在成员/变量上看到某种动作(即试图访问单元化对象成员的东西)以及当你转到CampaignSyncEntity.java:249构造函数的定义时(您在示例代码中使用的,最终在CampaignSyncEntity()中使用的成员将不会在声明成员的位置分配任何内容。如果在CampaignSyncEntity.java:249中使用了变量,则应该检查它的声明位置以及程序流程中发生的变化。可能它是由某个函数返回的,它可以返回CampaignSyncEntity.java:249,在这种情况下也是如此。

在这种情况下,使用Java Debugger确实很有帮助。大多数IDE都有内置的调试GUI,使用起来非常顺畅。这是Eclipse的一个例子:http://www.vogella.com/tutorials/EclipseDebugging/article.html。特别要查看 Watchpoint 功能 - 它允许您跟踪字段访问/修改。