初遇反射

来源:互联网 发布:linux 服务器鸟哥 编辑:程序博客网 时间:2024/05/16 03:20

  最近开发sdk,聊天部分我们提供了两种解决方案:客户集成Jpush推送;客户没集成Jpush推送。那么问题来了,若在我们自己开发的sdk中用到Jpush的API,但用户没有集成,这怎么办捏?这就需要用到反射,判断是否存在Jpush的相应的类,若有,就用反射调用相应的方法,话不多说,上代码;


public class JpushTokenUtils {    public static String getJpushToken(Context context) {        String jpushId = "";        try {            Class aClass = Class.forName("cn.jpush.android.api.JPushInterface");//若类不存在,则异常,不向下执行,若类存在,就执行相应的方法            Method method = aClass.getMethod("getRegistrationID", Context.class);            jpushId = (String) method.invoke(null, context);            System.out.print(jpushId);        } catch (ClassNotFoundException e) {            e.printStackTrace();        } catch (InvocationTargetException e) {            e.printStackTrace();        } catch (NoSuchMethodException e) {            e.printStackTrace();        } catch (IllegalAccessException e) {            e.printStackTrace();        }        return jpushId;    }}   原来只是听别人说反射很牛逼,这次终于自己也用了一把,他确实能解决普通方法解决不了的问题,比如,判断某个类是否存在,若存在就执行相应的逻辑的这个问题。嘿嘿,我会继续努力,写博客,记录自己的知识积累的点滴

0 0
原创粉丝点击