Does the implicit narrowing conversion work with the method return statement?
Yes, the implicit narrowing conversion work with the method return statement. For example,
class Program {
byte method_1() {
return 126;
}
byte method_2() {
final int m = 127;
return m;
}
byte method_3() {
final int m=128;
return m; //compile time error because m is not in the range value (-128 to 127) of byte
}
}
14.17 The return Statement in JLS 3.0:
A return statement with an Expression must be contained in a method declaration that is declared to return a value (8.4) or a compile-time error occurs. The Expression must denote a variable or value of some type T, or a compile-time error occurs. The type T must be assignable (5.2) to the declared result type of the method, or a compile-time error occurs.
"The type T must be assignable (5.2) to the declared result type of the method, or a compile-time error occurs" indicates that the implicit narrowing of integer constants is allowed in the method return context.
Most Recent java Faqs
- How to avoid an java.util.ConcurrentModificationException with ArrayList?
- How to convert a given array to a list in Java?
- How to make Java objects eligible for garbage collection?
- What are local variables in Java?
- What are instance variables in Java?
- How many backslashes?
- What are class variables in Java?
Most Viewed java Faqs
- How to use HttpURLConnection POST data to web server?(24745)
- What is runtime polymorphism in Java?(18323)
- How to add BASIC Authentication into HttpURLConnection?(16080)
- What is String literal pool?(14754)
- Can the run() method be called directly to start a thread?(13988)
- What does Class.forname method do?(10593)
- Can transient variables be declared as 'final' or 'static'?(10445)