nge*_*esh 144
使用forName代替..
像这样的东西..
try {
Class<?> act = Class.forName("com.bla.TestActivity");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
您可以使用Class::forName来获取未知类型的类对象。如果你想获得一个类型化的类,你可以Class::asSubclass在返回的类上使用Class::forName:
Class<? extends Activity> activityClass = Class.forName("com.example.TestActivity")
.asSubclass(Activity.class);
Run Code Online (Sandbox Code Playgroud)
当然,您还必须处理一堆不同类型的异常。处理反射时通常如此。
小智 5
该的Class.forName似乎有它的例外.这只是为了扩展上述内容以解决这个问题.
try { t = Class.forName("com.package.classname"); } catch (Exception ignored){}
Run Code Online (Sandbox Code Playgroud)