private static ClassProvider getBasicClasses() { // fallbacks for some special classes that we assume are present return new DexClassProvider(new ImmutableDexFile(Opcodes.getDefault(), ImmutableSet.of( new ReflectionClassDef(Class.class), new ReflectionClassDef(Cloneable.class), new ReflectionClassDef(Object.class), new ReflectionClassDef(Serializable.class), new ReflectionClassDef(String.class), new ReflectionClassDef(Throwable.class)))); }
@Nonnull @Override public List<String> getParameterTypes() { return new AbstractList<String>() { private final List<? extends MethodParameter> parameters = getParameters(); @Override public String get(int index) { return parameters.get(index).getType(); } @Override public int size() { return parameters.size(); } }; }
@Nonnull @Override public List<String> getParameterTypes() { return new AbstractList<String>() { private final List<? extends MethodParameter> parameters = getParameters(); @Override public String get(int index) { return parameters.get(index).getType(); } @Override public int size() { return parameters.size(); } }; }
private static DexFile getBasicClasses() { // fallbacks for some special classes that we assume are present return new ImmutableDexFile(ImmutableSet.of( new ReflectionClassDef(Class.class), new ReflectionClassDef(Cloneable.class), new ReflectionClassDef(Object.class), new ReflectionClassDef(Serializable.class), new ReflectionClassDef(String.class), new ReflectionClassDef(Throwable.class))); }
@Nonnull @Override public List<String> getParameterTypes() { return new AbstractList<String>() { private final List<? extends MethodParameter> parameters = getParameters(); @Override public String get(int index) { return parameters.get(index).getType(); } @Override public int size() { return parameters.size(); } }; }
@Nonnull @Override public List<String> getParameterTypes() { return new AbstractList<String>() { private final List<? extends MethodParameter> parameters = getParameters(); @Override public String get(int index) { return parameters.get(index).getType(); } @Override public int size() { return parameters.size(); } }; }
private static ClassProvider getBasicClasses() { // fallbacks for some special classes that we assume are present return new DexClassProvider(new ImmutableDexFile(Opcodes.getDefault(), ImmutableSet.of( new ReflectionClassDef(Class.class), new ReflectionClassDef(Cloneable.class), new ReflectionClassDef(Object.class), new ReflectionClassDef(Serializable.class), new ReflectionClassDef(String.class), new ReflectionClassDef(Throwable.class)))); }
@Nonnull @Override public List<String> getParameterTypes() { return new AbstractList<String>() { private final List<? extends MethodParameter> parameters = getParameters(); @Override public String get(int index) { return parameters.get(index).getType(); } @Override public int size() { return parameters.size(); } }; }
@Nonnull @Override public List<String> getParameterTypes() { return new AbstractList<String>() { private final List<? extends MethodParameter> parameters = getParameters(); @Override public String get(int index) { return parameters.get(index).getType(); } @Override public int size() { return parameters.size(); } }; }
public ClassPathEx(@Nonnull Iterable<? extends DexFile> classPath, int oatVersion) { super(false, oatVersion); for (DexFile dexFile : classPath) { addDex(dexFile, false); } if (availableClasses.get("Ljava/lang/Class;") == null) { final DexFile basicClasses = new ImmutableDexFile( DexUtil.getOpcodes(VersionMap.mapArtVersionToApi(oatVersion)), ImmutableSet.of( new ReflectionClassDef(Class.class), new ReflectionClassDef(Cloneable.class), new ReflectionClassDef(Object.class), new ReflectionClassDef(Serializable.class), new ReflectionClassDef(String.class), new ReflectionClassDef(Throwable.class))); addDex(basicClasses, false); } }