如何从String中获取类型?

时间:2013-12-13 23:50:31

标签: java string class types

具体 - 我甚至不知道是否可能,但可能有些东西,我不知道。 我需要从String获取类类型并将其用作泛型类型:

//Don't mind this
String columnName = n.getAttributes().getNamedItem("name").getTextContent(); 

//That would be canonical class name    
String columnType = n.getAttributes().getNamedItem("type").getTextContent();

Column<**Type from columnName**> col = new Column<>(columnName);

这样的事情是否可能?

1 个答案:

答案 0 :(得分:0)

不确切地知道你的意思。

但是要从String中获取一个Type,你必须使用

Class clazz = Class.forName("YourString");

如果类加载器能够将给定的String解析为位于其中的类 它将为类路径提供类型为Class的实例。

使用表达式

Object obj = clazz.newInstance();

您可以创建此类型的实例。

我认为存在某种类似的表达

ArrayList<? super Double> list;

,在你的情况下:

Column<? super GenericColumn> col = new Column<GenericColumn>(columnName);

这意味着由适当的String给出的类必须继承自 在运行时已知的GenericColumn。也许这可能是解决问题的方法。

无论如何在这种情况下,我认为泛型不是有用的。

相关问题