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


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

Re: can this be done with generics?

From Arivald <NOSPAMarivald@interia.pl>
Newsgroups comp.lang.java.programmer
Subject Re: can this be done with generics?
Date 2013-11-26 07:10 +0100
Organization Dialog Net
Message-ID <l71e0d$ojk$1@news.dialog.net.pl> (permalink)
References <slrnl9580s.42s.avl@gamma.logic.tuwien.ac.at> <64aa69a2-3f7f-452a-96de-572672b229d0@googlegroups.com> <fae58729-a510-49ac-9bbf-7dd7980adbc8@googlegroups.com> <slrnl97s39.42s.avl@gamma.logic.tuwien.ac.at>

Show all headers | View raw


W dniu 2013-11-26 01:50, Andreas Leitgeb pisze:
> taqmcg@gmail.com <taqmcg@gmail.com> wrote:
>> On Monday, November 25, 2013 11:36:08 AM UTC-5, taq...@gmail.com wrote:
>>> However this would require Foo to know about Bar.
>>> This you might be able to get around that with generics...
>> Or not...    I had thought that since generic resolution occurs at compile time
>> the actual type might be used, but that's not the case.  So the rest of my
>> suggestions doesn't work.  Should have checked <before> writing!
>
> In my "a)" I already used casts, so doing some unchecked-stuff is
> at least not principially worse. I tried doing the generic stuff
> directly on "toType()":
>
>    class Foo {
>       Foo foo() { /* ...; */ return this; }
>
>       @SuppressWarnings("unchecked")
>       <T> T toType() { return (T)this; }
>    }
>    class Bar extends Foo {
>       Bar bar() { return this; }
>    }
>    ...
>    new Bar().foo().<Bar>toType().bar();
>
> easily beats my original 'a)', but is still a bit awkward to use. ;-)
>

Maybe this way it looks better to use:

     class Foo {
         Foo foo() { /* ...; */ return this; }

         @SuppressWarnings("unchecked")
         <T> T cast(Class<T> c) { return (T)this; }
     }

     class Bar extends Foo {
         Bar bar() { return this; }
     }

     new Bar().foo().cast(Bar.class).bar();

-- 
Arivald

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


Thread

can this be done with generics? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-11-25 00:55 +0000
  Re: can this be done with generics? Arne Vajhøj <arne@vajhoej.dk> - 2013-11-24 21:11 -0500
    Re: can this be done with generics? Saxo <jeti789@web.de> - 2013-11-25 01:43 -0800
      Re: can this be done with generics? Saxo <jeti789@web.de> - 2013-11-25 01:47 -0800
      Re: can this be done with generics? Arne Vajhøj <arne@vajhoej.dk> - 2013-11-26 21:32 -0500
    Re: can this be done with generics? Silvio <silvio@internet.com> - 2013-11-25 11:30 +0100
      Re: can this be done with generics? Saxo <jeti789@web.de> - 2013-11-25 02:36 -0800
      Re: can this be done with generics? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-11-25 10:45 +0000
      Re: can this be done with generics? Arne Vajhøj <arne@vajhoej.dk> - 2013-11-26 21:35 -0500
        Re: can this be done with generics? Silvio <silvio@internet.com> - 2013-11-27 10:48 +0100
        Re: can this be done with generics? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-11-27 10:18 +0000
  Re: can this be done with generics? Patrick Roemer <sangamon@netcologne.de> - 2013-11-25 12:59 +0100
    Re: can this be done with generics? Robert Klemme <shortcutter@googlemail.com> - 2013-11-25 22:31 +0100
      Re: can this be done with generics? Patrick Roemer <sangamon@netcologne.de> - 2013-11-26 12:03 +0100
      Re: can this be done with generics? v_borchert@despammed.com (Volker Borchert) - 2013-11-26 21:32 +0000
        Re: can this be done with generics? Robert Klemme <shortcutter@googlemail.com> - 2013-11-26 23:30 +0100
      Re: can this be done with generics? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-11-27 18:53 +0000
        Re: can this be done with generics? Sebastian <news@seyweiler.dyndns.org> - 2013-11-28 22:28 +0100
          Re: can this be done with generics? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-11-30 14:21 +0000
  Re: can this be done with generics? Mike Amling <mamling@chaff.us> - 2013-11-25 09:02 -0600
    Re: can this be done with generics? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-11-26 01:04 +0000
      Re: can this be done with generics? Robert Klemme <shortcutter@googlemail.com> - 2013-11-26 08:16 +0100
        Re: can this be done with generics? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-11-26 20:42 +0000
    Re: can this be done with generics? Arne Vajhøj <arne@vajhoej.dk> - 2013-11-26 21:38 -0500
      Re: can this be done with generics? Mike Amling <mamling@chaff.us> - 2013-11-27 11:05 -0600
  Re: can this be done with generics? taqmcg@gmail.com - 2013-11-25 08:36 -0800
    Re: can this be done with generics? taqmcg@gmail.com - 2013-11-25 09:04 -0800
      Re: can this be done with generics? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-11-26 00:50 +0000
        Re: can this be done with generics? Arivald <NOSPAMarivald@interia.pl> - 2013-11-26 07:10 +0100
          Re: can this be done with generics? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-11-27 18:58 +0000
  Re: can this be done with generics? Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2013-12-07 09:04 -0800
    Re: can this be done with generics? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-12-07 19:20 +0000
      Re: can this be done with generics? Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2013-12-10 11:14 -0800

csiph-web