Java: доступ к частному конструктору с параметрами типа

Это продолжение вопроса о частных конструкторах Java .

Предположим, у меня есть следующий класс:

class Foo
{
    private T arg;
    private Foo(T t) {
        // private!
        this.arg = t;
    }   

    @Override
    public String toString() {
        return "My argument is: " + arg;
    }   
}

Как мне создать новый Foo ("привет ") с использованием отражения?

ОТВЕТ

На основе ответа jtahlborn работает следующее:

public class Example {
    public static void main(final String[] args) throws Exception {
        Constructor constructor;
        constructor = Foo.class.getDeclaredConstructor(Object.class);
        constructor.setAccessible(true);
        Foo foo = constructor.newInstance("arg1");
        System.out.println(foo);
    }   
}

67
задан Community 23 May 2017 в 10:30
поделиться