public void decode(Asn1BerDecodeBuffer buffer, boolean explicit, int implicitLength)
    throws Asn1Exception, IOException
  {
    int llen = (explicit) ? matchTag(buffer, TAG) : implicitLength;    init();    Asn1BerDecodeContext _context =  new Asn1BerDecodeContext(buffer, llen);
    
    IntHolder elemLen = new IntHolder();
    if (_context.matchElemTag((short)0, (short)0, (int)6, elemLen, false)) {
      this.direct_reference = new Asn1ObjectIdentifier();
      this.direct_reference.decode(buffer, true, elemLen.value);
    }    if (_context.matchElemTag((short)0, (short)0, 2, elemLen, false)) {
      this.indirect_reference = new Asn1Integer();
      this.indirect_reference.decode(buffer, true, elemLen.value);
    }    if (_context.matchElemTag((short)0, (short)0, 7, elemLen, false)) {
      this.data_value_descriptor = new Asn1ObjectDescriptor();
      this.data_value_descriptor.decode(buffer, true, elemLen.value);
    }    if (!(_context.expired())) {
      Asn1Tag tag = buffer.peekTag();
      if ((tag.equals((short)128, (short)32, 0)) || 
        (tag.equals((short)128, (short)0, 1)) || 
        (tag.equals((short)128,(short) 0, 2)) || 
        (tag.equals((short)192, (short)32, 30)))
      {
        this.encoding = new Asn1External_encoding();
        this.encoding.decode(buffer, true, elemLen.value); 
        break label277:
      }
      throw new Asn1MissingRequiredException(buffer);
    }
    throw new Asn1MissingRequiredException(buffer);    if (!(_context.expired())) {
      label277:  Asn1Tag _tag = buffer.peekTag();
      if ((_tag.equals((short)0,(short) 0, 6)) || 
        (_tag.equals((short)0, (short)0, 2)) || 
        (_tag.equals((short)0,(short)0, 7)))
        throw new Asn1SeqOrderException();
    }    if ((explicit) && (llen == -9999))
      matchTag(buffer, Asn1Tag.EOC);
  }

解决方案 »

  1.   

    按照正常的理解这个代码肯定不是这样写的
    有好点的工具可以介绍?我用的是java decompiler
      

  2.   

    java 反编译 DJ JAVA Decompiler v3.10.10.93特别版
    DJ JAVA Decompiler DJ Java Decompiler 是个反编译的工具,可以将编译过的CLASS文件编译还原成为Java原始文件并且不需要额外安装JVM(Java虚拟机)或是Java SDK的工具模组即可使用。不单如此,DJJava Decompiler也兼具有Java程序编辑工具的角色,提供一些辅助功能便于程序撰......
    http://www.jb51.net/do/plus/download.php?open=0&aid=16788&cid=3