У меня есть некоторые странные Requirment мне нужно загрузить класс динамически,Динамическая нагрузка класса в Java
здесь у меня есть Interface
public interface House
{
public Object loadHouseModel(String type);
public Object loadHouseSpace(String type);
}
теперь нужный класс будет реализовывать этот интерфейс
public class DuplexHouse implements House
{
public Object loadHouseModel(String type)
{
///Method body goes here
}
public Object loadHouseSpace(String type)
{
///Method body goes here
}
}
Теперь мое требование состоит в том, что мне нужно загрузить DuplexHouse
или что бы то ни было, класс, который реализует House
Требование - это то, что имя класса DuplexHouse
. Я получу его из свойств и все, что я знаю. Имя класса, которое я получаю, будет реализовывать интерфейс House
. поэтому мои СВОЙСТВА выглядит следующим образом type_house=xx.xx.xxx.DuplexHouse,xx.xx.xx.TruplexHouse,..etc
На основе типа дома, мне нужно загрузить соответствующий объект дома
Так что в моем главном классе Class cl = Class.forName(xx.xxx.xxx.DuplexHouse);
Моего Requirment, я хочу House
экземпляра, который внутренне держит DuplexHouse
объекта Как я могу это сделать ??
Что вам нужно сделать с объектом 'Class'? Что-то мешает вам просто создать экземпляр «House house = new DuplexHouse()»? –
использовать дженерики для всего, что реализует использование интерфейса, например 'ClassName' –
emotionlessbananas
@TimBiegeleisen Я не могу создать экземпляр 'House' с' DuplexHouse', потому что 'DuplexHouse' не знает, что я беру это имя класса из свойства. Все, что я знаю, это то, что 'DuplexHouse' реализует' House' – Babel