How do you specify a byte literal in Java?

Charbel picture Charbel · Mar 4, 2011 · Viewed 153.7k times · Source

If I have a method

void f(byte b);

how can I call it with a numeric argument without casting?

f(0);

gives an error.

Answer

Robin picture Robin · Mar 4, 2011

You cannot. A basic numeric constant is considered an integer (or long if followed by a "L"), so you must explicitly downcast it to a byte to pass it as a parameter. As far as I know there is no shortcut.