Используйте экземпляр Class :
Class<?> myclass = Class.forName("myClass_t");
myClass_t myVar = (myClass_t)myclass.cast(AnotherClass.classMethod());
Имейте в виду, что это может вызвать несколько исключений, например, если класс, определенный в строке, не существует или если AnotherClass.classMethod) не возвращает экземпляр класса, который вы хотите привести к.Чтобы прояснить идею интерфейса (который обычно используется для механизмов плагинов в Java):
interface Testing {
public String getName();
}
class Foo implements Testing
{
public String getName()
{
return "I am Foo";
}
}
class Bar implements Testing
{
public String getName()
{
return "I am Bar";
}
}
// Then
Class<?> myclass = Class.forName("Foo");
Testing instance = (Testing)myclass.newInstance();
System.out.println(instance.getName()); // I am a Foo
myclass = Class.forName("Bar");
Testing instance = (Testing)myclass.newInstance();
System.out.println(instance.getName()); // I am a Bar
В основном у вас есть динамическое имя класса (например, из файла свойств).Этот класс реализует интерфейс, так что вы можете убедиться, что экземпляры класса предоставляют методы интерфейсов (вместо использования отражения для всего).