Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!.POSTED!not-for-mail From: Novice Newsgroups: comp.lang.java.programmer Subject: Curious compiler warning Date: Wed, 11 Jan 2012 01:51:59 +0000 (UTC) Organization: Your Company Lines: 50 Message-ID: NNTP-Posting-Host: 5PPmjkvSSHvzZTySRz75XA.user.speranza.aioe.org X-Complaints-To: abuse@aioe.org User-Agent: Xnews/5.04.25 X-Antivirus-Status: Clean X-Notice: Filtered by postfilter v. 0.8.2 X-Antivirus: avast! (VPS 120110-1, 2012-01-10), Outbound message Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:11201 I'm getting an odd compiler warning that I don't really understand. I wonder if anyone can enlighten me on the meaning of this message. Basically, I'm not sure what the compiler's problem is with what I'm doing or the best way to make it happy. I've got a fairly simply method name foo() that takes two parameters, ints called start and finish. During this method, I decrement start and finish and then calls another method, bar(), passing the decremented versions of start and finish. For some reason, the compiler objects to the statements where I decrement start and finish and says "the parameter should not be assigned". I'm running Eclipse 3.7.1 with a 1.6.18 JDK. So here's what the code looks like: public static int foo(int start, int finish) { /* Other stuff */ start--; finish--; bar(start, finish); } It's the start--; and finish--; lines that are raising the warnings. What exactly is wrong with doing that? And what is the best way to make the compiler happy about that code? I modified the code as follows to get rid of the warnings but is it really necessary to create two local variables just to eliminate the warnings? Or is there a better way? public static int foo(int start, int finish) { /* Other stuff */ int myStart = start; myStart--; int myFinish = finish; myFinish--; bar(myStart, myFinish); } -- Novice