我的Java代码大致如下:
regclass
我在使用render函数返回从onDone回调中获取的String时遇到问题。我尝试在sendRequest调用之外初始化String res,但是我遇到了变量不是最终的问题。
我也在阅读Java Futures here。从那个我以为我可以设置一个Future并在其上调用isDone()以确保它已设置?但是这段代码看起来很冗长,我想知道是否有更简单的解决方案。
答案 0 :(得分:2)
我在使用render函数返回从onDone回调中获取的String时遇到问题。我尝试在sendRequest调用之外初始化String res,但是我遇到了变量不是最终的问题。
您无法从匿名类更改原始类型或不可变类型的最终变量,并且无法访问非最终类型。所以你可以:
使用命名内部类而不是匿名
使用可变类的最终对象(StringBuilder或StringBuffer)
创建一个可变的类,它只是" holder"必需值,创建其类型的最终变量,并从匿名类设置值;或者为了相同的目的使用所需类型的数组。
[见this]
但是在从外部函数返回值之前,你显然应该等到匿名类中的方法完成它的工作。