From 253c057eb4b6cc273d7da4bd7b02b98c5e21b509 Mon Sep 17 00:00:00 2001 From: nbwzlyd1 <1185675288@qq.com> Date: Mon, 1 May 2023 14:12:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=81=E5=A3=B3=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/github/catvod/spider/Ali.java | 9 ++++++- .../com/github/catvod/utils/ReflectUtil.java | 25 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/github/catvod/utils/ReflectUtil.java diff --git a/app/src/main/java/com/github/catvod/spider/Ali.java b/app/src/main/java/com/github/catvod/spider/Ali.java index 173cdb9b..d9f64ace 100644 --- a/app/src/main/java/com/github/catvod/spider/Ali.java +++ b/app/src/main/java/com/github/catvod/spider/Ali.java @@ -6,7 +6,9 @@ import android.text.TextUtils; import com.github.catvod.ali.API; import com.github.catvod.bean.Result; import com.github.catvod.crawler.Spider; +import com.github.catvod.utils.ReflectUtil; +import java.lang.reflect.Method; import java.util.List; import java.util.Map; import java.util.regex.Matcher; @@ -21,7 +23,12 @@ public class Ali extends Spider { @Override public void init(Context context, String extend) { - String token = getToken(); + //适配其他tvbox或者老版本tvbox,要先判断有没有getToken方法,调用setToken也是一样的 + Method method = ReflectUtil.getMethod(this, "getToken"); + String token = ""; + if (method != null) { + token = getToken(); + } API.get().setRefreshToken(TextUtils.isEmpty(token) ? extend : token); } diff --git a/app/src/main/java/com/github/catvod/utils/ReflectUtil.java b/app/src/main/java/com/github/catvod/utils/ReflectUtil.java new file mode 100644 index 00000000..1eb774fb --- /dev/null +++ b/app/src/main/java/com/github/catvod/utils/ReflectUtil.java @@ -0,0 +1,25 @@ +package com.github.catvod.utils; + +import java.lang.reflect.Method; + +public class ReflectUtil { + /** + * @Description: 判断是否包含某个方法 + */ + public static Method getMethod(Object object, String methodName, Class ... parameterTypes){ + Method method = null ; + + for(Class clazz = object.getClass() ; clazz != Object.class ; clazz = clazz.getSuperclass()) { + try { + method = clazz.getMethod(methodName,parameterTypes) ; + return method ; + } catch (Exception e) { + //这里甚么都不要做!并且这里的异常必须这样写,不能抛出去。 + //如果这里的异常打印或者往外抛,则就不会执行clazz = clazz.getSuperclass(),最后就不会进入到父类中了 + + } + } + + return null; + } +}