我有一个问题,如何获得数组字符串,它给我这个错误:
请求处理失败;嵌套异常是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());
}
}
希望你们能帮助我解决我的问题,提前谢谢
答案 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 功能 - 它允许您跟踪字段访问/修改。