java定时器 run方法怎么返回值 我要返回result 代码里一直报错 晚生跪求解决

public VirementResultInfo queryTransaction( final String bank, final TransactionInfo transactionInfo) {
//

final VirementResultInfo result = null;

            TimerTask task = new TimerTask() {
                @Override
                public void run() {
                //  String bankCode = bank;
                //  TransactionInfo b = transactionInfo;
                    String clientSystemNo="D3JOI2JKSA929AIU";
                    String encryptKey = "123456";
                    Boolean isEncrypted = false;
                    BankServiceAgentPortTypeProxy client = new BankServiceAgentPortTypeProxy("http://10.1.255.45:80/NASApp/iTreasury-paymentcenter/services/BankServiceAgent");
                    try {
                        result = client.queryTransaction(clientSystemNo, encryptKey, isEncrypted,  bank, transactionInfo);
                    } catch (RemoteException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    System.out.println(" 第 " + ++count + " 次执行 ");
                }
            };

            Timer timer = new Timer();
            timer.schedule(task, Calendar.getInstance().getTime(), 2 * 1000);
            return result;


    }

参考深入理解Java中的final关键字

final变量是只读的。

你final VirementResultInfo result = null这样定义,后面却result = client.queryTransaction给它赋值,所以报错了。

去掉final关键字后程序还报错吗,是否返回了你需要的结果?
上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢!

我想问一下 你这样可以拿到返回值嘛   这个执行好像是异步的