I agree with Thomas not because he seems singled out but for the following reason: You do not necessarily introduce a constant right off the bat. You may wait to have duplication and then you refactor and introduce a constant. Conversely you might arrive at a point where you only have 1 usage of the constant. At that point it is reasonable to want to inline it to make the code more readable. In general I would like all refactoring to have their inverse: introduce/extract XXX - inline XXX. Let's not forget that a refactoring is just a tool. How you could use it to do harm doesn't decrease its usefulness used properly.
Jacques "Thomas Singer" <[EMAIL PROTECTED]> wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > This seems to me to promote the bad programming habit of using values > > instead of constants. > > No, this is wrong. A better example: > > ======================= Example A ========================= > public class Test { > > private static final String HELLO_WORLD = "Hello world"; > > public static void main(String[] arguments) { > System.out.println(HELLO_WORLD); > } > } > ======================= Example B ========================= > public class Test { > > public static void main(String[] arguments) { > System.out.println("Hello world"); > } > } > =========================================================== > > Now decide, what is better readable. > > Tom > > > On Tue, 30 Jul 2002 22:59:02 +0300, "Avi Rosenschein" > <[EMAIL PROTECTED]> wrote: > > > -1 > > > > This seems to me to promote the bad programming habit of using values > > instead of constants. The whole purpose of the constant is to increase > > readability, and to ease maintenance by making future changes only to the > > initialization and not every place you used that value. If you are getting > > rid of the constant in order to improve readability, you probably aren't > > choosing good constants in the first place. Generally I would think the best > > thing would be just to rename the variable. > > > > Also, to give it a name like "inline constants" seems to imply that there is > > some efficiency benefit to be gained by "inlining" constants in Java - which > > in this case there isn't. > > > > --Avi > > > > "Thomas Singer" <[EMAIL PROTECTED]> wrote in message > > [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > > > Just curious. Why would you want to do this? The compiler puts the > > > > constant value in place of the constant "variable" so there is no > > > > performance gain. > > > > > > Why we use the refactorings at all? To make the code more readable! > > > > > > > What you appear to want is that YES is like a #def in C/C++ and is > > > > inlined. This is not necessary in Java. > > > > > > As the name already suggests, the example is just an example. > > > > > > Tom > > > > > > > > > On Tue, 30 Jul 2002 21:33:43 +1200, Pete Hendry <[EMAIL PROTECTED]> > > > wrote: > > > > > > > Just curious. Why would you want to do this? The compiler puts the > > > > constant value in place of the constant "variable" so there is no > > > > performance gain. > > > > > > > > What you appear to want is that YES is like a #def in C/C++ and is > > > > inlined. This is not necessary in Java. > > > > > > > > Pete > > > > > > > > Oh yeah, -1 :-) > > > > > > > > Thomas Singer wrote: > > > > > > > > > Since months, I would like to have the option to inline constants -- > > > > > simply replacing their usage with their initialisation... > > > > > > > > > > Example: > > > > > > > > > > public static final Option YES = Option.YES; > > > > > > > > > > ... > > > > > setOption(YES); > > > > > ... > > > > > > > > > > ==> > > > > > > > > > > ... > > > > > setOption(Option.YES); > > > > > ... > > > > > > > > > > I know, I can do it with cut'n'paste, but I'm able to do each > > > > > refactoring with the help of cut'n'paste. > > > > > > > > > > Tom > > > > > > > > > > > > > > > > > _______________________________________________ Eap-features mailing list [EMAIL PROTECTED] http://lists.jetbrains.com/mailman/listinfo/eap-features
