java吧 关注:1,293,155贴子:12,825,240
  • 10回复贴,共1

【求助】有没有熟悉反射机制的大佬,帮我解个题,有偿!!!

只看楼主收藏回复



IP属地:山东1楼2022-02-07 18:48回复
    求助啊!


    IP属地:山东2楼2022-02-07 19:15
    回复
      2025-12-31 22:09:52
      广告
      不感兴趣
      开通SVIP免广告
      有没有大佬帮忙写一下


      IP属地:山东3楼2022-02-07 19:32
      回复
        读取data文件内容,反射获取类的Method,调用invoke()方法传入需要执行方法的目标对象和参数


        来自iPhone客户端4楼2022-02-07 20:16
        回复
          cjc2528,加我


          来自Android客户端5楼2022-02-07 20:21
          回复
            这很容易呀。


            6楼2022-02-07 20:23
            回复
              vx:cjc2528


              来自Android客户端7楼2022-02-07 20:23
              回复
                package com.luojie.demo;
                import java.lang.reflect.Method;
                public class A {
                void test1(int a) {
                System.out.println("test1," +a);
                }
                void test2(int a,int b) {
                System.out.println("test2," +a+","+b);
                }
                void test3() {
                System.out.println("test3");
                }
                void test4() {
                System.out.println("test4");
                }
                public static void main(String[] args) throws Exception {
                String m = "test1 10,test2 10 100,test3,test4";
                A a = new A();
                String[] split = m.split(",");
                for (String s : split) {
                String[] s1 = s.split(" ");
                String methodName = s1[0];
                int argsLen = s1.length - 1;
                if(argsLen==0) {
                Method method = A.class.getDeclaredMethod(methodName);
                method.invoke(a);
                }else {
                Class[] methodTypes = new Class[argsLen];
                Object[] methodArgs = new Object[argsLen];
                for (int i = 0; i < argsLen; i++) {
                methodTypes[i] = int.class;
                methodArgs[i]= Integer.valueOf(s1[i+1]);
                }
                Method method = A.class.getDeclaredMethod(methodName,methodTypes);
                method.invoke(a,methodArgs);
                }
                }
                }
                }


                9楼2022-02-07 20:46
                收起回复
                  2025-12-31 22:03:52
                  广告
                  不感兴趣
                  开通SVIP免广告
                  直接转账吧,你去百度就行


                  IP属地:黑龙江来自iPhone客户端10楼2022-02-07 21:05
                  回复
                    看私信


                    IP属地:四川来自Android客户端11楼2022-02-08 11:17
                    回复