Я определил метод с параметром типа char:
public void method(char x){
// do something here
}
Я хотел бы иметь возможность вызывать этот метод следующим образом:
method(a);
Но Java хочет, чтобы я вместо этого написал:
method('a');
Как я могу вызвать метод без кавычек? Java поддерживает это?
Другой короткий ответ — «да» — если a — это переменная типа char.
Я имею в виду, если не считать определения переменной с именем a. Конечно, вы могли бы сделать public static final char a = 'a'; и так далее для всех букв алфавита, но это было бы просто глупо.
Есть ли язык, который поддерживает этот синтаксис?
@LongNguyen: и Perl, и Bash делают это, что мне пришло в голову.




Единственный способ сделать это допустимым синтаксисом:
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'.
Короткий ответ: нет, Java не поддерживает это. Но это звучит как проблема X-Y: вероятно, есть лучший способ выполнить то, что вы пытаетесь сделать.