Как использовать разные данные с помощью faker в Java с помощью функций?

Я использую faker с Java (https://mvnrepository.com/artifact/com.github.javafaker/javafaker/0.2), и у меня возникла проблема с генерацией разных данных в цикле с использованием функции. Вот мой код:

import com.github.javafaker.Faker;
import java.util.ArrayList;
import java.util.LinkedHashMap;

public class DataGenerator{
 Faker faker = new Faker();
 LinkedHashMap<String,ArrayList<String>> result = new LinkedHashMap<>();
 public static void main(String[] args) throws Exception {
   generatedata("firstname");
   //generatedata("lastname");
   for(String key : this.result.keySet())
    {
        System.out.println(key);
        ArrayList<String> al = this.result.get(key);
        for(String s : al)
            System.out.println(s);
    }
 }

 public void generatedata(String fieldType) throws Exception{
   switch (fieldType.toLowerCase()){
    case "firstname":
      resultdata = generateInvalidData(faker.name().firstName());
      break;
    case "lastname":
      resultdata = generateInvalidData(faker.name().lastName());
      break;
   }
   result.put(fieldType.toLowerCase(), resultdata);
 }

 public ArrayList<String> generateNames(String fieldType) throws Exception{
  ArrayList<String> resultdata = new ArrayList<>();
  for (int j = 0; j < 5; j++) {
        //valid data
        resultdata.add(testData);

        //UPPERCASE
        resultdata.add(testData.toUpperCase());
    }
     return resultdata;
 }

Здесь я пытаюсь сгенерировать имя, фамилию с другим количеством и комбинацией в методе / функции generateNames, но поскольку фейкер вызывается только один раз, который передается в качестве параметра, я получаю тот же набор данных.

Я не хочу вызывать содержимое generateNames в методе генерируемые данные, потому что, если я хочу добавить больше комбинаций, мне нужно скопировать и вставить все в каждом случае переключения, если добавлено больше случаев. Любая помощь приветствуется. Спасибо.

почему бы не сделать что-то вроде generateInvalidData(new Faker().name().firstName());, чтобы это был новый экземпляр объекта Faker каждый раз, когда вы берете имя, фамилию и так далее?

RAZ_Muh_Taz 20.09.2018 17:28

Он по-прежнему показывает те же данные.

Zeeshan 21.09.2018 07:58

есть ли возможность, что я могу передать класс имя() и метод имя в качестве параметров и вызвать новый экземпляр faker в методе generateInvalidData()?

Zeeshan 21.09.2018 08:16
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
426
0

Другие вопросы по теме