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

Я пытаюсь получить значения из класса в другом классе, который будет создан динамически, а также методы. Посмотрите на эти примеры, которые я прошел.

InterfaceA.java

public interface InterfaceA{
    public ArrayList<?> getValues();
}

ClassA.java / ClassB.java (рассмотрим, что другой класс имеет значение = "Мир")

public Class A implements InterfaceA{
    String value = "Hello";

    public ArrayList<?> getValues(){
        ArrayList<String> values = new ArrayList<String>();
        values.add(this.value);
        return values ;
    }
}

ClassC.java

public Class C{
    public void getValues(){
        Object modelObject;
        Method getValues;
        modelObject = resolveClass("A"); // arg = classPath
        getValues= modelObject.getClass().getMethod("getValues");
        getValues.invoke(modelObject);
        ArrayList<?> classValues;

        // How to access Class A values from here
        // I want to do These Lines
        // classValue = get value from A/B.getValues() dynamically
    }

    private Object resolveClass(String className) throws
    ClassNotFoundException, NoSuchMethodException, SecurityException, 
    InstantiationException, IllegalAccessException, IllegalArgumentException,
    InvocationTargetException {
        Class<?> loadClass = Class.forName(className);
        Constructor<?> constructor = loadClass.getConstructor(String.class);
        Object object = constructor.newInstance(new Object[] {});

        return object;
    }
}

Как получить доступ к этому методу возвращенных значений, как ArrayList <> упоминается в комментариях?

1 Ответ

0 голосов
/ 28 апреля 2018

псевдокод ...

Method m = .. getMethod("getValues");
Object o = m.invoke(modelObject);
ArrayList<?> classValues = (ArrayList<?>) o

Вы можете найти больше информации здесь

...