【问题标题】:Request processing failed; nested exception is java.lang.NullPointerException When using Array of String [duplicate]请求处理失败;嵌套异常是 java.lang.NullPointerException 使用字符串数组时 [重复]
【发布时间】:2015-09-01 10:09:58
【问题描述】:

我在如何获取数组字符串时遇到问题,它给了我这个错误:

请求处理失败;嵌套异常是 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());

}

}

希望你们能帮我解决我的问题,在此先感谢

【问题讨论】:

  • 什么确切代码位于CampaignSyncEntity类第249行?
  • 从堆栈跟踪中可以清楚地看出异常位于 CampaignSyncEntity.java 第 249 行。请发布该代码 sn-p。

标签: java arrays nullpointerexception


【解决方案1】:

你能检查一下这条线吗...

System.out.println("KEYWORDS: "+Arrays.toString(syncEntity.getSyncAdKeywords()));

我的意思是syncEntity.getSyncAdKeywords()返回的内容。

如果它返回的null 问题就在那里..

【讨论】:

    【解决方案2】:

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

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


    在这种情况下,使用 Java Debugger 真的很有帮助。大多数 IDE 都有内置的调试 GUI,这使得它使用起来非常流畅。这是 Eclipse 的示例:http://www.vogella.com/tutorials/EclipseDebugging/article.html。尤其是Watchpoint 功能 - 它允许您跟踪字段访问/修改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 2018-05-11
      相关资源
      最近更新 更多