返回外部函数在内部Callback中获得的String

时间:2016-06-25 01:21:38

标签: java serialization callback

我的Java代码大致如下:

regclass

我在使用render函数返回从onDone回调中获取的String时遇到问题。我尝试在sendRequest调用之外初始化String res,但是我遇到了变量不是最终的问题。

我也在阅读Java Futures here。从那个我以为我可以设置一个Future并在其上调用isDone()以确保它已设置?但是这段代码看起来很冗长,我想知道是否有更简单的解决方案。

1 个答案:

答案 0 :(得分:2)

  

我在使用render函数返回从onDone回调中获取的String时遇到问题。我尝试在sendRequest调用之外初始化String res,但是我遇到了变量不是最终的问题。

您无法从匿名类更改原始类型或不可变类型的最终变量,并且无法访问非最终类型。所以你可以:

  • 使用命名内部类而不是匿名

  • 使用可变类的最终对象(StringBuilder或StringBuffer)

  • 创建一个可变的类,它只是" holder"必需值,创建其类型的最终变量,并从匿名类设置值;或者为了相同的目的使用所需类型的数组。

[见this]

但是在从外部函数返回值之前,你显然应该等到匿名类中的方法完成它的工作。