我有一个ArrayList,这些是我的元素。
ArrayList<String> temporaryArray = new ArrayList<>();
Elements : soudjuk salami
我只是试着调用这个函数。
pizza.addTopping(new soudjuk(new salami()));
但是,我必须将这些字符串转换为类名。 我怎么能这样做?
答案 0 :(得分:2)
因此,您可以使用Class#forName
和reflection
来完成任务。
Class<?> clazz = Class.forName(className);
Constructor<?> cons = clazz.getConstructor(YourArgumentClass.class);
Object object = cons.newInstance(new Object[] { yourArgumentObject });
注意:类名必须是
fully qualified
名称(带有的类名) 包名称。)
答案 1 :(得分:1)
您可以使用Class.forName
静态方法。
Class<?> classType = Class.forName(className);
className
param必须是合格的类名。例如:com.package.class
。
此外,
您还可以尝试loadClass()
方法。
ClassLoader load;
Class myClass = load.loadClass(name);