【问题标题】:wait for string value change from null to other value等待字符串值从 null 更改为其他值
【发布时间】:2015-04-05 09:41:52
【问题描述】:

我有一个像下面这样的课程

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。

【问题讨论】:

  • 可能longprocess() 会抛出异常
  • 这个漫长的过程是在启动一个单独的线程吗?否则,由于缺乏异常处理,您可能没有注意到错误
  • catch语句块中添加打印语句,看看longprocess()是否确实抛出了异常。
  • longprocess()中显示代码可能会有所帮助
  • 我怀疑是否有可能在不知道 longprocess 在做什么的情况下给出真正的答案。

标签: java android


【解决方案1】:

根据您使用 pastebin 提供的代码(顺便说一句,为什么不将它包括在内?),您似乎在分配实际值之前返回了 output 字符串。

方法RootShell.getShell(true).add(cmd)将异步执行提供的命令,所以你不能在命令的回调中分配方法的局部变量output(你可以,但是实际的分配会在return output;语句之后发生,所以你总是会返回@987654325 @ 来自您的 longprocess() 方法)。

作为一种解决方法,我建议您将某种侦听器传递给您的 longprocess() 方法并从此侦听器分配 mystring 变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多