Сравнение 2 строк с рулем в Java

Я использую Handlebars с Dropwizard в Java. Я хотел бы сравнить 2 строки, и если они одинаковы, я бы хотел что-то сделать. Я знаю, что в Javascript есть несколько помощников, но я не понимаю, как адаптировать их к java.

У меня есть этот код, но вопрос в том, как я могу добавить второе значение, чтобы проверить, равны ли они.

public enum StringHelper implements Helper<Object> {
     eq {
         @Override
         public Boolean safeApply(final Object value, final Options options) {
           return ((String)value).equals(/*SECOND VALUE*/);
         }
       };

       @Override
       public Boolean apply(Object context, Options options) throws IOException {
         return safeApply(context, options);
       }

       protected abstract Boolean safeApply(final Object value,
                                        final Options options);
     }
}

2 ответа

Сначала создайте класс для ваших пользовательских помощников:

public class HandlebarsHelpers {
    public CharSequence equals(final Object obj1, final Options options) throws IOException {
        Object obj2 = options.param(0);
        return Objects.equal(obj1, obj2) ? options.fn() : options.inverse();
    }
}

Затем зарегистрируйте этот класс:

Handlebars handlebars = new Handlebars();
handlebars.registerHelpers(new HandlebarsHelpers());

Используйте помощника:

{{#equals 'A' type}}
    <p>The type is A</p>
{{else}}
    <p>The type is NOT A</p>
{{/equals}}

Есть более простое решение:

бэкэнд:

      Handlebars handlebars = new Handlebars();
handlebars.registerHelper("eq", ConditionalHelpers.eq);

внешний интерфейс:

      {{#eq "a" "a"}}HURRA!{{/eq}}

Источник: официальная документация.

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