По сути, это то, что произойдет, независимо от того, используете ли вы для этого сторонний инструментарий или нет. Приведение объекта по своей сути будет обязательным , если не ожидается Object
. Тем не менее, вы можете сделать рутину, которая сделает это за вас:
public <T> T instantiateObject(String name, Class<T> cls) throws Exception {
return (T) Class.forName(name).newInstance();
}
Который вы можете использовать:
AClass cls = instantiateObject("com.class.AClass", AClass.class);
Но если вы зайдете так далеко, String name
на самом деле является избыточным (учитывая, что AClass - конкретный класс). Вы могли бы также:
public <T> T instantiateObject(Class<T> cls) throws Exception {
return (T) Class.forName(cls.getCanonicalName()).newInstance();
}
Который вы можете использовать:
AClass cls = instantiateObject(AClass.class);