2 u010772547 u010772547 于 2014.12.09 22:32 提问

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;


    }

2个回答

save4me
save4me   Ds   Rxr 2014.12.10 09:29

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

final变量是只读的。

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

save4me
save4me 你的方法是可以的,就是你定义result的时候,不要用final这个关键词,因为用了就不能赋值了。是什么原因你需要使用final来限定result的?
3 年多之前 回复
u010772547
u010772547 该怎么把run方法里的我查出来的东西返回给 这个queryTransaction方法
3 年多之前 回复
save4me
save4me   Ds   Rxr 2014.12.18 09:49

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!