@SuppressWarnings({"unchecked", "rawtypes"}) public static <K> K key(final Class<K> keyClass) { Class<? extends IdGenerator> genClass = Instances.fetch( () -> { Map<Class<?>, Class<? extends IdGenerator>> map = new HashMap<Class<?>, Class<? extends IdGenerator>>(); for (Class<? extends IdGenerator> subClass : Reflections.getSubClasses(IdGenerator.class)) { Class<?> pcl = Generics.resolveGenericParameter(subClass, IdGenerator.class, "K"); map.put(pcl, subClass); } return map; }) .get(keyClass); if (null == genClass) throw new SystemException("", "Could not found any key generator class."); IdGenerator<K> g = Instances.fetch(genClass); return g.generate(); }
@Deprecated public static String objectId() { return Instances.fetch(ObjectIdGenerator.class).generate(); }