Я прочитал документацию по байтам и javassist, и я хотел бы не знать, возможно ли преобразовать строку, например:
get foos where name == toto
to
data.getFoos().stream()
.filter( f -> f.name.equals( "toto" ) )
.collect( Collectors.toSet() )
Регулярное выражение может фиксировать выражение как:
final Pattern query = Pattern.compile("get (\\w+) where (\\w+) ([=!]+) (\\w+)");
final Scanner scanner = new Scanner(System.in);
final Matcher matcher = query.matcher(input);
matcher.group(1) // foos -> Foo and foos -> getFoos()
matcher.group(2) // field to use as filter
matcher.group(3) // symbol == / !=
matcher.group(4) // thing to match
- преобразовать
get foos
вgetFoos()
- проверить из класса
Foo
, существует ли полеname
- если поля
name
не являются экземпляромNumber.class
, переведите==
в.equals
- сделать выражение
- зациклить и распечатать результаты
Я прочитал несколько примеров, но не смог найти такую вещь. Поэтому я пришел сюда, чтобы получить ваш свет. Благодарность