Почему в Java нет байтов или коротких литералов?
Я могу создать литерал long, добавив L к значению; почему я не могу создать литерал short или byte каким-то подобным образом? Зачем мне использовать int литерал с приведением?
И если ответ «потому что в C не было короткого литерала», то почему в C нет коротких литералов?
На самом деле это никак не влияет на мою жизнь; достаточно просто написать (короткий) 0 вместо 0S или что-то в этом роде. Но непоследовательность делает меня любопытным; это одна из тех вещей, которая беспокоит тебя, когда ты поздно ночью. Кто-то в какой-то момент принял дизайнерское решение, позволяющее вводить литералы для некоторых примитивных типов, но не для всех. Зачем?