Ошибка, когда я передаю короткий тип данных в точных параметрах моего метода - PullRequest
0 голосов
/ 21 октября 2018
public static void example(short a, int b, int c){
     System.out.println("example");
}
public static void main(String[]args){
example(1,2,3); /*I'm getting a compile time error "the method   
                example(short,int,int) is not applicable for the 
                arguments(int, int, int)*/

Я исправил это, объявив все значения как типы данных int в формальных параметрах, но не является ли это коротким типом данных ??Я просто хочу знать, почему я не мог передать 1 в реальных параметрах.Я использую Java между прочим

1 Ответ

0 голосов
/ 21 октября 2018

Вы не говорите, что это за язык программирования, поэтому невозможно сказать однозначно, однако из сообщения об ошибке ясно, что это:

не является краткимТип ??

является ложным.

Из сообщения об ошибке легко увидеть, что нет, 1 является не литералом, обозначающимshort, на самом деле это литерал, обозначающий int.

Опять же, вы не говорите, какой язык вы используете, поэтому невозможно с абсолютной уверенностью сказать, так ли это илинет, но из сообщения об ошибке, это, безусловно, так выглядит.Например, если вы посмотрите на Java, Спецификация языка Java ясно говорит:

Целочисленный литерал имеет тип long, если к нему добавлена ​​буква ASCII * 1022.* или l (ell);в противном случае он имеет тип int (§4.2.1).

Итак, если бы языком в вашем фрагменте кода был Java, то 1 был бы int.

...