我有一个类似下面的课程
public class Myclass {
private static String mystring = null;
public String process() {
output = null; // reset the value
try {
mystring = longprocess();
} catch (Exception e) {}
return mystring;
}
}
这个问题是我总是得到我的字符串方法'process'的空值
如何等待mystring的值从null更改为其他值,然后才返回值?
注意:只需在方法进程中返回变量'mystring',而不在return语句本身中使用longprocess。
答案 0 :(得分:0)
根据你用pastebin提供的代码(BTW,为什么不包含它?),似乎你在赋予实际值之前返回output
字符串。
方法RootShell.getShell(true).add(cmd)
将异步执行提供的命令,因此您无法在命令的回调中分配方法的局部变量output
(您可以,但实际的分配将会在return output;
语句后发生,因此您将始终从null
方法返回longprocess()
。
作为一种解决方法,我建议您将某种倾听者传递给longprocess()
方法,并从此侦听器中分配mystring
变量。