如果你在a中有完整的限定类名String,请使用Class#forName()和Class#newInstance().
Object o = Class.forName("com.example.Foo").newInstance();
Run Code Online (Sandbox Code Playgroud)
但是,这需要类已经存在于类路径中并具有(隐式)默认构造函数.
如果不是,并且您具有类的位置URL,则使用URLClassLoader并将其传递给另一个Class#forName()接受它作为参数的方法.
URL url = getItSomehow();
URLClassLoader classLoader = URLClassLoader.newInstance(new URL[] { url });
Object o = Class.forName("com.example.Foo", true, classLoader).newInstance();
Run Code Online (Sandbox Code Playgroud)
或者,如果您将其File替换为,则将其转换为URL第一个:
File file = getItSomehow();
URL url = file.toURI().toURL();
// Continue with URLClassLoader.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1925 次 |
| 最近记录: |