本人小白,有个Java语法问题,未知类,求大佬看看

只想躺着
  • 1
新手上路,请多包涵

Class clazz = loadPackageParam.classLoader.loadClass("com.sagittarius");
            //不加final修饰内部无法访问
         final Class<?> personClass = XposedHelpers.findClass("com.live.eggplant.widget", loadPackageParam.classLoader);
            XposedHelpers.findAndHookMethod(
                    clazz,
                    "attachBaseContext",
                    Context.class,
                    new XC_MethodHook() {

                        protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                            Context context = (Context) param.args[0];
                            ClassLoader classLoader =context.getClassLoader();
                            XposedHelpers.findAndHookMethod(
                                    "com.live.eggplant.widget.video.CustomGSYVideoPlayer",
                                    classLoader,
                                    "a",
                                    //我在这里调用显示未知类,我该怎么调用
                                    personClass.class,  
                                    new XC_MethodHook() {
                                        

                                    });

                            
                        }


                    });
回复
阅读 988
3 个回答

你这个应该是xposed的,personClass.class类是目标程序上的类吧,应该有字符串写法的我记得。

刚刚看了下,这个personClass.class位置应该是填写 Class类型,你可以借助XposedHelpers.findClass api去获取Class

存在访问时间的问题,personClass对象可能已经走完生命周期,但是XC_MethodHook内部类还没有调用personClass这个对象。在内部类中引用外部的局部变量时要求变量为final,Java编译器会为加了final标志且被内部类引用的局部变量在内部类中拷贝一份。

直接使用变量 personClass 就行. 这本来就是一个类对象了.

如果是 class personClass {} 这种定义才需要personClass.class访问方式

你知道吗?

宣传栏