Получить экземпляр статического класса с закрытым конструктором через универсальный класс - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть экземпляр статического класса с закрытым конструктором.MyStaticClass имеет объявленную переменную, которая вызывает закрытый конструктор.

public class ImplementedClass implements TheInterface<Integer>
{
   public ImplementedClass INSTANCE = new ImplementedClass();


        private ImplementedClass(){}
        //overrides
}

Мне нужно получить экземпляр этого класса из другого класса с использованием обобщений.

Class<? extends TheInterface> myStaticClass = (Class<? extends TheInterface>) Class.forName(bd.getBeanClassName());

Как мне получить экземплярэтого класса?

1 Ответ

0 голосов
/ 14 декабря 2018

Полагаю, вам нужен экземпляр-одиночка.Так что сделайте переменную INSTANCE статической:

public static ImplementedClass INSTANCE = new ImplementedClass();

Если это сделано, вы можете:

    String classname="ImplementedClass";
    Class c=Class.forName(classname);
    Field instanceField=c.getDeclaredField("INSTANCE");
    TheInterface instance=(TheInterface)instanceField.get(null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...