В Java параметры принимаются как char, но без кавычек

Я определил метод с параметром типа char:

public void method(char x){
    // do something here
}

Я хотел бы иметь возможность вызывать этот метод следующим образом:

method(a);

Но Java хочет, чтобы я вместо этого написал:

method('a');

Как я могу вызвать метод без кавычек? Java поддерживает это?

Короткий ответ: нет, Java не поддерживает это. Но это звучит как проблема X-Y: вероятно, есть лучший способ выполнить то, что вы пытаетесь сделать.

Daniel Pryden 09.03.2019 02:36

Другой короткий ответ — «да» — если a — это переменная типа char.

Hovercraft Full Of Eels 09.03.2019 02:37

Я имею в виду, если не считать определения переменной с именем a. Конечно, вы могли бы сделать public static final char a = 'a'; и так далее для всех букв алфавита, но это было бы просто глупо.

Daniel Pryden 09.03.2019 02:37

Есть ли язык, который поддерживает этот синтаксис?

Long Pollehn 09.03.2019 02:46

@LongNguyen: и Perl, и Bash делают это, что мне пришло в голову.

Daniel Pryden 09.03.2019 02:47
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
5
41
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Единственный способ сделать это допустимым синтаксисом:

method(a);

Это что-то, что можно определить a. Например, вы можете сделать:

class Foo {
    public static final char a = 'a';
    // etc.

    public static void main(String[] args) {
        method(a);  // equivalent to method('a')
    }
}

Но если вы не создадите переменную с именем a, вы не сможете использовать a как простое слово в исходном коде программы Java. Если вам нужен символьный литерал, вам нужно использовать одинарные кавычки, например 'a'.

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