反射抽取retrofit

2019-06-25  本文已影响0人  NullPoint3Exce

    public static <T> Observable<ResponseBody> requestApi(String url, Class<T> tClass, String methodName,String... params) {
        try {
            final T t = retrofitBuilder.baseUrl(url).build().create(tClass);

            Class<?> apiServceiClass = Class.forName(t.getClass().getName());//完整类名


            Method getData = apiServceiClass.getDeclaredMethod(methodName,String.class,String.class);//获得私有方法

            getData.setAccessible(true);//调用方法前,设置访问标志
            return ((Observable<ResponseBody>) getData.invoke(t,params)).subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread());

        } catch ( Exception e) {
            e.printStackTrace();
        }

        return null;
    }
上一篇 下一篇

猜你喜欢

热点阅读