Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 等待字符串值从null更改为其他值_Java_Android - Fatal编程技术网

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正在做什么的情况下是否可能给出真正的答案。