从java中的静态方法返回值时获取nullpointerexception

从java中的静态方法返回值时获取nullpointerexception,java,Java,我试图从静态方法返回一个字符串,并将其分配给另一个静态方法中的字符串 public static ArrayList val(){ String a = "Some value"; String someString = identifyString(a); //some code }

我试图从静态方法返回一个字符串,并将其分配给另一个静态方法中的字符串

               public static ArrayList val(){    
                  String a = "Some value";    
                  String someString = identifyString(a);    
                  //some code     
                  }    

               private static String identifyString(String a){    
                   String[] ac = "";    
                   String b = "";    
                   String c = "";
                   ac = a.split(some pattern);    
                      if(some condition){    
                                 b = a[0];  
                                 c = a[1];
                                 return b+"-"+c;    
                                 }    
                     }          

返回b+“-”+c正在抛出nullpointerexception。请帮助。我还将“someString”设置为静态,但同时也给出了nullpointerexception。

仅当满足“if”条件时才返回值。如果“如果”条件不满足,程序将不会返回任何内容


请确保无论发生什么情况,您总是返回一些内容。代码中有很多问题-也许您可以澄清您试图实现的目标?方法是静态的这一事实与此无关,并且不需要分配空字符串(对于字符串数组也没有意义)

我猜你的意思是: b=ac[0]; c=ac[1]

返回b+“-”+c


您还应该防止拆分返回大小小于2的数组,在val()的方法描述符中为返回数组指定泛型类型,并使用更具描述性的字段名。

返回a+“-”+c
永远不会引发该异常。请发布堆栈跟踪。
String[]ac=“”甚至不会编译。请发布真实代码。但在我的例子中,它正在编译,如果我将+“-”+c分配给某个字符串变量,它也会形成一个字符串,只有当它即将返回时,它才会抛出nullpointerexception。我分配的字符串[]ac=null;这是真的,但没有回答问题。OP没有发布完整的/真实的代码。它正在编译,但在我的例子中,值是从表中获取的,如果我给某个字符串变量分配+“-”+c,它也会形成一个字符串,只有当它即将返回时,它才会抛出nullpointerexception。