Forums Register Login

return type problem

+Pie Number of slices to send: Send
class Test {

public static void main(String[] args) {
m1();
}
static byte m1( ) {
final char c1 ='2';
return c1; //line 1
}
static byte m2(final char c2) {
c2='3';
return c2; //line 2
}
}

while i am compiling this code i am getting compiler error at line 2 only.i am not getting compiler error at line 1 why.please help anybody.
+Pie Number of slices to send: Send
Please do not post the same question multiple times.

Note that if you want to edit your post after submitting it, you can do so by clicking the button.
[ September 02, 2007: Message edited by: Jesper Young ]
+Pie Number of slices to send: Send
Howdy Sam!

Welcome to the ranch!




I added a little comment to your code

You won't get a compiler error on line 1. char c1 is final and has one value once and for all. The char value of '2' can be converted into an int value of 50. This is a value that fits also into the byte range of a byte.

But you will get an error in line 2. The compiler sees that it gets a value that might have changed.
You should also get an error in the "line in the middle" because you try to change a final variable. But the compiler sees the error in line 2 first and does not report the other one.
If you change line 2 to return 1; (which is a legal return for a byte) then compiler would mark an error in the line in the middle: "final parameter c2 may not be assigned".

If you change the whole method to

Then the former line 2 is also wrong, because you cannot give a char back because it doesn't fit always into a byte.
It does not help now that the char is final. Because you could easily invoke the method with a char value of - say '\u0080' (128, just one too big).



Yours,
Bu.
The City calls upon her steadfast protectors. Now for a tiny ad:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com


reply
reply
This thread has been viewed 958 times.
Similar Threads
Problem returning a byte (was:Why it gives Compiler error?)
final modifier
Guys Help me Out
simple question
complie-time constants
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 02:34:25.