我从我的活动中调用了外部类的一些函数,我想提供参数的参考,以便我可以获得更新的值。
我正在调用这样的函数:
我的活动:
String var1;
ArrayList<String> var2;
OuterClass outerClass = new Outerclass();
outerClass.someMethod(var1, var2);
我的外部类功能:
public void someMethod(String var1,ArrayList<String> var2) {
// after some operations
var1 = "somevale1";
var2 also have some value;
我需要访问我的活动中的两个更新值,而不需要任何仅来自引用的return语句。但在这里我收到错误variable accessed from within inner class needs to be declare final
,但我无法宣布最终结果。
我应该怎样做才能像TextView和EditText一样提供参考?
答案 0 :(得分:0)
我认为你可以宣布为全局变量并使它们成为最终变量。
final String var1;
final Arraylist<String> var2;
答案 1 :(得分:0)
试试这个, 获取一个bean类,并将其放入var1,var2中,然后在out类方法中更新,并将更新后的值反映到该bean对象中。
class CustomBean{
String var1;
ArrayList<String> var2;
}
OuterClass outerClass = new Outerclass();
outerClass.someMethod(Bean bean);
public void someMethod(String var1,ArrayList<String> var2) {
// after some operations
bean.var1 = "somevale1";
bean.var2 also have some value;
}
答案 2 :(得分:0)
您不能以这种方式更新值,因为您传递给方法只是引用存储日期的位置。我建议改变你的方法的签名,所以它返回:
return new Pair<String, ArrayList<String>> (var1, var2);
克里希纳的回答也是正确的,但我认为这种架构并没有真正需要。
答案 3 :(得分:0)
也许有人想这样。 someMethod的签名发生了变化。
class xxx: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
}