gpt4 book ai didi

java - 如何使用反射包从类路径创建对象

转载 作者:行者123 更新时间:2023-12-01 07:15:08 25 4
gpt4 key购买 nike

我想创建一个我只知道它的类路径的对象任何帮助将不胜感激。

最佳答案

如果您在 String 中有完全限定的类名,请使用 Class#forName()Class#newInstance() .

Object o = Class.forName("com.example.Foo").newInstance();

但这要求该类已存在于类路径中并且具有(隐式)默认构造函数。

如果不是,并且您的类(class)位置位于URL ,然后使用 URLClassLoader并将其传递给另一个 Class#forName()接受它作为参数的方法。

URL url = getItSomehow();
URLClassLoader classLoader = URLClassLoader.newInstance(new URL[] { url });
Object o = Class.forName("com.example.Foo", true, classLoader).newInstance();

或者,如果你有它在 File 中相反,然后先将其转换为 URL:

File file = getItSomehow();
URL url = file.toURI().toURL();
// Continue with URLClassLoader.

关于java - 如何使用反射包从类路径创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4433247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com