Java,如何将字符串转换为类并调用其静态方法?

时间:2016-10-07 14:02:37

标签: java

class Item
{
    public static test()
    {
    }
}

String s = "package.Item";
Item o = (Item)Class.forName(s).cast(Item.class); // *
o.test();

但是标记的行失败了:

java.lang.ClassCastException:无法将java.lang.Class强制转换为items.Item

1 个答案:

答案 0 :(得分:1)

要创建新实例,您需要执行以下操作

Class c = Class.forName("Item");
Item i = (Item)c.newInstance();

如果要调用静态方法,只需在类而不是实例

上调用它
Item.test();

或者您可以在不直接引用类

的情况下使用反射
Class c = Class.forName("Item");
Method method = c.getMethod("test");
method.invoke(null);