AriesHoo / FastLib

一个Android项目级快速开发框架,节约大部分写常用功能时间以实现更多项目业务功能及体验上的优化。使用说明见wiki
https://github.com/AriesHoo/FastLib/wiki
Apache License 2.0
492 stars 95 forks source link

通用的请求 #30

Closed flowvwrvvsv closed 5 years ago

flowvwrvvsv commented 5 years ago

你好请问,这种通用的返回体形式的,是不是不可用,我尝试谢了下代码,最后因为subscribe这个方法的参数问题。image

AriesHoo commented 5 years ago

1、这个BaseEntity 是根据我Demo里的数据做测试的。 2、如果你要参考这个模式的话得根据自己app后台返回数据调整BaseEntity 3、参数问题。具体是什么问题,运行Demo会出问题吗?如果Demo未出问题。请调整根据你接口调整实体结构

flowvwrvvsv commented 5 years ago

1 BaseEntity我没有改,还是用的你测试那个,

AriesHoo commented 5 years ago

把你出错日志贴一下。贴全点

flowvwrvvsv commented 5 years ago

我只是把你的FastLoadingObserver略封装一下后,调用的时候直接传入想要接受到的类型,但是好像这种只能接收Object的, 微信截图_20190313153147 微信截图_20190313153236

AriesHoo commented 5 years ago

那就是你封装错了。你好好查下资料

AriesHoo commented 5 years ago

我没有见过你那种封装传泛型的模式

flowvwrvvsv commented 5 years ago

subscribe方法志接收向上类型的泛型参数,并且也报错了, 微信截图_20190313153834

flowvwrvvsv commented 5 years ago

恩,好的,我还是多去查查资料

AriesHoo commented 5 years ago

这个属于Retrofit+RxJava 范畴的错误。。看样子像是封装泛型那块问题

flowvwrvvsv commented 5 years ago

我说说我的想法,BaseEntity的泛型参数T,在调用的时候比如传入BaseEntity , 里面的data这个就会自动转换成LoginEntity类型

flowvwrvvsv commented 5 years ago

BaseEntity《LoginEntity》

AriesHoo commented 5 years ago

你这个想法最初我也是那么想的,但是后面发现不行。。不是调用subscribe传进去而是在Service 就必须定义好返回的类型如截图所示 image 如果找到可以解决方法麻烦再此处贴一下。感谢 ru

AriesHoo commented 5 years ago

应该是执行顺序问题。前面(Service)已经定义了最终返回的T类型。subscribe只能接收上边传下来的T,我是这么理解的

flowvwrvvsv commented 5 years ago

Service定义泛型方法,返回任意参数,然后就报错,报错信息就直接指明:方法返回类型不得包含类型变量或通配符,所以这种方式是不可行了。。。。在编译的时候也因为subscribe方法不能接受子类型参数不通过 image

微信截图_20190313154730

AriesHoo commented 5 years ago

对啊。。我就是说的Service必须指明最终接收的实体类型

flowvwrvvsv commented 5 years ago

多谢为我解惑,你的项目很好,正在学习

AriesHoo commented 5 years ago

客气,共同学习进步