Java 等待字符串值从null更改为其他值
我有一个像下面这样的班级Java 等待字符串值从null更改为其他值,java,android,Java,Android,我有一个像下面这样的班级 public class Myclass { private static String mystring = null; public String process() { output = null; // reset the value try { mystring = longprocess(); } catch (Exception e) {} return mystring;
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”总是得到null值
如何等待mystring的值从null变为其他值,然后才返回该值
注意:只需在方法进程内返回变量“mystring”,而不必在返回语句本身中使用longprocess。根据您随pastebin附带的代码,为什么不将其包含在问题中?似乎在为输出字符串赋值之前,您返回了输出字符串 方法RootShell.getShelltrue.addcmd将异步执行提供的命令,所以您不能在命令的回调内分配方法的局部变量输出,但实际分配将在返回输出后发生;语句,因此您将始终从longprocess方法返回null
作为一种解决方法,我可以建议您向longprocess方法传递某种类型的侦听器,并从此侦听器分配mystring变量。也许longprocess会抛出一个异常。这个长进程是否会启动一个单独的线程?否则,可能是由于缺少异常处理而没有注意到的错误在catch语句块中添加print语句,以查看longprocess是否确实引发了异常。在longprocess中显示代码可能会有所帮助我怀疑在不知道longprocess正在做什么的情况下是否可能给出真正的答案。