从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。