Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #21075

Re: "Hello world!" without a public class?

Newsgroups comp.lang.java.programmer
Date 2013-01-06 13:21 -0800
References (2 earlier) <e1778471-c18f-46e6-9a7e-d7d312d684c3@googlegroups.com> <bdc51fed-5efc-4380-8162-6f4309155239@googlegroups.com> <8889b1c7-4198-4d54-8fbc-8fa0ef8608a3@googlegroups.com> <919a1e82-bb3d-409b-a3c6-a6fe8e09b1c5@googlegroups.com> <50e9e786$0$290$14726298@news.sunsite.dk>
Message-ID <31c0e887-032a-4311-8b23-4ce7878cc4b1@googlegroups.com> (permalink)
Subject Re: "Hello world!" without a public class?
From "Aryeh M. Friedman" <Aryeh.Friedman@gmail.com>

Show all headers | View raw


On Sunday, January 6, 2013 4:07:17 PM UTC-5, Arne Vajhøj wrote:
> On 1/6/2013 1:48 PM, Aryeh M. Friedman wrote:
> 
> >Now that being said here is a good example of something that is easier 
> 
> to read then either (yes it does get compiled into something very close 
> 
> to inner classes [not nested if I remember the jargon correctly] but no 
> 
> where near as ugly):
> 
> >
> 
> > Foo.java:
> 
> >
> 
> > public enum Foo
> 
> > {
> 
> >      ACK {
> 
> >         public void doSomething(SomeClass arg)
> 
> >         {
> 
> >            do what ever for ACK
> 
> >         }
> 
> >      },
> 
> >      BAR {
> 
> >         public void doSomething(SomeClass arg)
> 
> >         {
> 
> >           do what ever for BAR
> 
> >         }
> 
> >      }
> 
> > }
> 
> >
> 
> > Fred.java:
> 
> >
> 
> > public class Fred
> 
> > {
> 
> >       public void someMethod()
> 
> >       {
> 
> >          SomeClass sc=new SomeClass(...);
> 
> >          Foo[] arr=new Foo[]{ACK,BAR};  // typing this for this example so being lazy on syntax
> 
> >
> 
> >          for(Foo elem:arr)
> 
> >              elem.doSomething(sc);
> 
> >       }
> 
> > }
> 
> >
> 
> > and voila much more readable then putting a whole rats nest of stuff in the initialization of arr
> 
> >       }
> 
> > }
> 
> 
> 
> Given that the above is both unreadable and un-compilable, then ...
> 
> 
> 
> Arne

Ok here is some actual working code that effectively does the same thing with the psedocode filled in (including the command lines):

% cat Foo.java 
public enum Foo
{
	ACK {
		public String doSomething(String arg)
		{
			return "ACK: "+arg;
		}
	},
	BAR {
		public String doSomething(String arg)
		{
			return "BAR: "+arg;
		}
	};

	public abstract String doSomething(String arg);
}
% cat Fred.java 
public class Fred
{
	public static void main(String[] args)
	{
		for(Foo elem:new Foo[]{Foo.ACK,Foo.BAR})
			System.out.println(elem.doSomething("I am doing something"));
	}
}
% javac Fred.java 
% java Fred
ACK: I am doing something
BAR: I am doing something

Now please tell me that does not replace inner classes (the enum constants are compiled as inner classes and not just straight data constants).

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: "Hello world!" without a public class? "Aryeh M. Friedman" <Aryeh.Friedman@gmail.com> - 2013-01-06 02:10 -0800
  Re: "Hello world!" without a public class? Lew <lewbloch@gmail.com> - 2013-01-06 09:43 -0800
    Re: "Hello world!" without a public class? "Aryeh M. Friedman" <Aryeh.Friedman@gmail.com> - 2013-01-06 09:51 -0800
      Re: "Hello world!" without a public class? Lew <lewbloch@gmail.com> - 2013-01-06 09:58 -0800
        Re: "Hello world!" without a public class? "Aryeh M. Friedman" <Aryeh.Friedman@gmail.com> - 2013-01-06 10:48 -0800
          Re: "Hello world!" without a public class? Arne Vajhøj <arne@vajhoej.dk> - 2013-01-06 16:07 -0500
            Re: "Hello world!" without a public class? "Aryeh M. Friedman" <Aryeh.Friedman@gmail.com> - 2013-01-06 13:21 -0800
              Re: "Hello world!" without a public class? Arne Vajhøj <arne@vajhoej.dk> - 2013-01-06 16:43 -0500
          Re: "Hello world!" without a public class? Lew <lewbloch@gmail.com> - 2013-01-06 17:24 -0800
      Re: "Hello world!" without a public class? Arne Vajhøj <arne@vajhoej.dk> - 2013-01-06 15:59 -0500
        Re: "Hello world!" without a public class? "Aryeh M. Friedman" <Aryeh.Friedman@gmail.com> - 2013-01-06 13:22 -0800
          Re: "Hello world!" without a public class? Arne Vajhøj <arne@vajhoej.dk> - 2013-01-06 16:35 -0500

csiph-web