Rococoa { public static <T extends ObjCClass> T createClass(String ocClassName, Class<T> type) { return wrap(Foundation.getClass(ocClassName), type, false); } private  Rococoa(); static T createClass(String ocClassName, Class<T> type); static T create(String ocClassName, Class<T> javaClass, String ocMethodName, Object... args); static T create(String ocClassName, Class<T> javaClass); static T wrap(ID id, Class<T> javaClass); static T cast(ObjCObject object, Class<T> desiredType); static T wrap(ID id, Class<T> javaClass, boolean retain); @Deprecated static ID wrap(Object javaObject); static ObjCObject proxy(Object javaObject); static T proxy(Object javaObject, Class<T> javaType);  }
@Test public void testFactory() { NSNumber._Class nsNumberClass = Rococoa.createClass("NSNumber", NSNumber._Class.class); assertEquals(nsNumberClass.id(), Foundation.getClass("NSNumber")); }