Java “параметрические усилители” в сигнатуре метода?

Вы всегда можете объединить строки и использовать их как один аргумент:

SELECT * FROM table WHERE
 POSITION('x' in (field1 || field2 || field3) ) > 0

Обратите внимание, что это объединение с || даст вам значение NULL, если любое из полей field1, field2, field3 имеет значение null, а конкатенация с функцией concat не будет:

SELECT * FROM table WHERE
 POSITION('x' in concat(field1, field2, field3) ) > 0

Если вы ищете один символ, это будет хорошо. Однако, если вы ищете, например, «ax», и вы не хотите совпадать, если field1 оканчивается на «a», а field2 начинается с «x», тогда вы также можете включить разделитель между аргументами с помощью функции concat_ws, например:

107
задан Alvin Wong 15 January 2013 в 06:03
поделиться

2 ответа

В Java это звонило varargs, и синтаксис похож на регулярный параметр, но с замещающим знаком ("... ") после типа:

public void foo(Object... bar) {
    for (Object baz : bar) {
        System.out.println(baz.toString());
    }
}

vararg параметр должен всегда быть последний параметр в сигнатуре метода и получен доступ, как будто Вы получили массив того типа (например, Object[] в этом случае).

190
ответ дан 3 revs 24 November 2019 в 03:40
поделиться

Это добьется цели в Java

public void foo(String parameter, Object... arguments);

, необходимо добавить три точки ... и varagr, параметр должен быть последним в подписи метода.

11
ответ дан user3145373 ツ 24 November 2019 в 03:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: