为了账号安全,请及时绑定邮箱和手机立即绑定

有谁知道 内部类的方法的局部变量怎么传给外部类同时让别的类能通过类名直接调用静态方法

有谁知道 内部类的方法的局部变量怎么传给外部类同时让别的类能通过类名直接调用静态方法

扬帆大鱼 2019-03-15 14:15:57
有谁知道 内部类的方法的局部变量怎么传给外部类,同时让别的类能通过类名直接调用静态方法,return出去,我原先在内部类声明了一个静态变量,早内部类的方法赋值后,但是第一次return出去的是初始值,也就是Null,第二次才是第二次,关于这个问题有谁有好的解决方案?我现在想直接调用GetPlayURL.getUrl(),就能拿到Parsejosn的值
查看完整描述

3 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

首先这里你访问网络用的是异步请求,那么你调用的时候就不可能同步的拿到值。要么使用OKHTTP的同步访问网络的方式,网络访问完毕后才去返回值,那么就能拿到正确的值,要么就自己控制异步时获得值,比如在网络请求结束后才去获得值,就是进入response后才去做操作。


查看完整回答
反对 回复 2019-04-17
?
HUX布斯

TA贡献1876条经验 获得超6个赞

这里不直接写内部类,而是让当前类继承该接口,在重写的方法中将值赋予当前类的变量。这是我的想法


查看完整回答
反对 回复 2019-04-17
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

getAsyn方法从名字来看是一个异步方法,你的getUrl在它收到响应之前就会返回,所以无法得到响应中的值。有2种解决办法:

  1. 看看OkHttpClientManager有没有同步方法

  2. 如果非要使用异步方法,可以在getUrl中发送异步请求之后用休眠或循环的方式等待,直到parseJson有值再返回。这样其实是变相地把异步变成了同步。


查看完整回答
反对 回复 2019-04-17
  • 3 回答
  • 0 关注
  • 717 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号