我的一个方法要返回一个String[][] ,但是变量String[][] MyInvokeStr 的实例化在try里面,并且MyInvokeStr 值也是在try里面写入的。我如何来返回这个MyInvokeStr 呢?它编译的时候老是报错:没有实例化。
代码如下:public String[][] MyInvokeService(String ServiceType){
String MyInvokeStr[][];
try {
...
MyInvokeStr = new String[r][c];
...
}
catch (Exception ex) { ex.printStackTrace(); }
return MyInvokeStr;
}
代码如下:public String[][] MyInvokeService(String ServiceType){
String MyInvokeStr[][];
try {
...
MyInvokeStr = new String[r][c];
...
}
catch (Exception ex) { ex.printStackTrace(); }
return MyInvokeStr;
}
String MyInvokeStr[][] = null;
try {
...
MyInvokeStr = new String[r][c];
...
}
catch (Exception ex) { ex.printStackTrace(); }
return MyInvokeStr;
}
String MyInvokeStr[][] = null;
你也可以像下面这样:
String MyInvokeStr[][] = new String[0][0];看你自己的喜好了,两者没有什么区别,
只是在你引用该方法获取返回数组后
上面的方法要判断是否为null
下面的则不需要。
MyInvokeStr = new String[r][c];
这一句时或者之前抛出异常,则MyInvokerStr没有赋值。
因此编译return MyInvokerStr的时候检测到变量MyInvokerStr可能没赋值。
只需要在申明MyInvokerStr的时候初始化一下就好:
String MyInvokeStr[][] = null;
所以String MyInvokeStr[][] = null;即可
不赋值会引起编译错误,不管是对于基本类型还是对象类型推荐代码
try
{
String[][] MyInvokeStr = new String[r][c];
return MyInvokeStr;
}
catch(Exception ex)
{
return null;
}