public ClassPath(@Nonnull Iterable<DexFile> classPath,boolean checkPackagePrivateAccess,Opcodes.Version version){
  Iterable<DexFile> dexFiles=Iterables.concat(classPath,Lists.newArrayList(getBasicClasses()));
  unknownClass=new UnknownClassProto(this);
  loadedClasses.put(unknownClass.getType(),unknownClass);
  this.checkPackagePrivateAccess=checkPackagePrivateAccess;
  this.version=version;
  loadPrimitiveType("Z");
  loadPrimitiveType("B");
  loadPrimitiveType("S");
  loadPrimitiveType("C");
  loadPrimitiveType("I");
  loadPrimitiveType("J");
  loadPrimitiveType("F");
  loadPrimitiveType("D");
  loadPrimitiveType("L");
  for (  DexFile dexFile : dexFiles) {
    addDex(dexFile,false);
  }
}

public ClassPath ( @ Nonnull Iterable < DexFile > classPath , boolean checkPackagePrivateAccess , Opcodes . Version version ) { Iterable < DexFile > dexFiles = Iterables . concat ( classPath , Lists . newArrayList ( getBasicClasses ( ) ) ) ; unknownClass = new UnknownClassProto ( this ) ; loadedClasses . put ( unknownClass . getType ( ) , unknownClass ) ; this . checkPackagePrivateAccess = checkPackagePrivateAccess ; this . version = version ; loadPrimitiveType ( "Z" ) ; loadPrimitiveType ( "B" ) ; loadPrimitiveType ( "S" ) ; loadPrimitiveType ( "C" ) ; loadPrimitiveType ( "I" ) ; loadPrimitiveType ( "J" ) ; loadPrimitiveType ( "F" ) ; loadPrimitiveType ( "D" ) ; loadPrimitiveType ( "L" ) ; for ( DexFile dexFile : dexFiles ) { addDex ( dexFile , false ) ; } }
creates a new classpath instance that can load classes from the given dex files
