CSTable和class$java$lang$String 在反编译的文件里有么

解决方案 »

  1.   

    CSTable和class$java$lang$String 在你的反编译文件里是怎么定义的
      

  2.   

    class1 = (CSTable.a != null) ? CSTable.a : (CSTable.a = CSTable._mthclass$("java.lang.String"));这有什么不好理解的? 把class$java$lang$String 替换为a 就成了上面的样子.标准的语句.翻译成ifClass class1;
    if ( CSTable.a != null ) {
        class1 = CSTable.a;
    } else {
        CSTable.a = CSTable._mthclass$("java.lang.String");
        class1 = CSTable.a;
    }还可以简化为:
    if ( CSTable.a == null ) {
        CSTable.a = CSTable._mthclass$("java.lang.String");
    }
    Class class1 = CSTable.a;
      

  3.   

    知道这个,
    但是在CSTable里没有_mthclass$()这个函数啊
      

  4.   

    在CSTable类里
    定义如下:
    static Class class$java$lang$Number; /* synthetic field */
    static Class class$java$util$Date; /* synthetic field */
      

  5.   

    _mthclass$(String)这个方法可以类似这样class _mthclass$(String name) {
      try {
       return Class.forName(name);
      }
      catch (Exception ex) {
       ex.printStackTrace();
      return null;
      }}这类问题是由于jad之类反编译工具的缺陷
      

  6.   

    怎么会没有_mthclass$()这个方法??
      

  7.   

    大家好,这个我不会,查查API哈哈
      

  8.   

    注意程序里有没有mthclass$(String)或_mthclass$(String)
    这样的函数出现,如果有这两者之一那就是了
      

  9.   

    我也遇到过这类问题,虽然和你问题不一样,但是我可以肯定的说,这是反编译器的问题,反编译器在反编译的时候,不一定能把.class文件,翻译的和原来的.java文件一模一样