значение аргумента переменной изменения Java

1

Я не уверен, что я делаю какую-то глупую ошибку. То, что я пытаюсь достичь, - это список JSON, и я хочу преобразовать их в несколько объектов в зависимости от аргумента переменной, переданного функции.

Unit u1= new Unit();
User us = new User();
//calling funtion
StaticUtil.MagicJsonMapper(list, u1,us);
System.out.println(u1.getUnitName()); //place -1 unitName is null after function call

Внутри статического класса я создал функцию

@SuppressWarnings("rawtypes")
public static void MagicJsonMapper(List list,Object... objects){
    if(list.size()!= objects.length){
        //TODO
        System.out.println("parame'ter mismatch");
        return;
    } 
    int i=0;
    ObjectMapper mapper = new ObjectMapper();
    for(Object object : objects){
        if(list.get(i) instanceof List){
            MagicJsonMapper((List)list.get(i),object);
        }
        else{
            objects[i] = mapper.convertValue(list.get(i), object.getClass());
        }
        i++;
    }
 //place -2 "objects" contains proper value of unitname 
}

Проблема в том, что я до сих пор не получил правильное значение в параметре после завершения этого метода. Это означает, что значения аргументов не сохраняются, как в отличие от нормального поведения Java, это как-то связано с переменным аргументом. Просто для ясности я отлаживал код, а значения были в конце функции.

  • 0
    Не связано, но вы должны соблюдать соглашение Java и начинать имя метода со строчной буквы ;-)
  • 0
    « Я все еще не получаю правильное значение в параметре после завершения работы этого метода » - можете ли вы показать нам, как и где вы пытаетесь получить доступ к значению?
Показать ещё 2 комментария
Теги:

1 ответ

3

Массив objects создается во время вызова функции и затем отбрасывается. Если вам нужно получить доступ к значениям из массива после вызова, вам нужно явно создать массив.

  • 0
    Проблема в том, что этот код облегчит мои попытки развернуть каждый json и typecast. если я создаю массив и передаю его, то позже мне придется развернуть его и набрать текст, что увеличит мою работу. Как вы думаете, может быть любое другое решение этой проблемы.
  • 0
    @sanjaypatel ваш JSON содержит различные типы для чтения, и вы, кажется, знаете их и их порядок (поскольку вы передаете объекты каждого класса в ваш метод). Я считаю, что вам, вероятно, следует подумать о создании класса, в котором все эти объекты являются полями, а не использовать общий список или массив.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню