@Nonnull
	public static ClassMembers createMembers(@Nonnull Map<String, byte[]> classMap, @Nonnull ClassHierarchy hierarchy) {
		Class<?>[] argTypes = new Class[]{ClassHierarchy.class};
		Object[] argVals = new Object[]{hierarchy};
		ClassMembers repo = ReflectUtil.quietNew(ClassMembers.class, argTypes, argVals);
		try {
			new ClassReader("java/lang/Object").accept(repo.new Feeder(), 0);
		} catch (IOException ex) {
			logger.error("Failed to get initial reader ClassMembers, could not lookup 'java/lang/Object'");
			throw new IllegalStateException();
		}
		for (Map.Entry<String, byte[]> e : classMap.entrySet()) {
			try {
				new ClassReader(e.getValue()).accept(repo.new Feeder(), 0);
			} catch (Throwable t) {
				logger.debug("Could not supply {} to ClassMembers feeder", e.getKey(), t);
			}
		}
		return repo;
	}
@param classMap
		Map to pull classes from.
@param hierarchy
		Hierarchy to pass to {@link ClassMembers} constructor.

@return Members instance.
recaf-core/src/main/java/software/coley/recaf/services/phantom/JPhantomGenerator.java