Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #28726
| Path | csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.freenet.ag!takemy.news.telefonica.de!telefonica.de!feed.news.schlund.de!schlund.de!news.online.de!not-for-mail |
|---|---|
| From | Philipp Kraus <philipp.kraus@flashpixx.de> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Queue and Map interface |
| Date | Sat, 14 Jun 2014 07:52:01 +0200 |
| Organization | 1&1 Internet AG |
| Lines | 54 |
| Message-ID | <lngnu2$etd$1@online.de> (permalink) |
| References | <lnfoa3$8sn$1@online.de> <lnfql9$hnq$1@dont-email.me> |
| NNTP-Posting-Host | p3e9e6ea5.dip0.t-ipconnect.de |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=iso-8859-1; format=flowed |
| Content-Transfer-Encoding | 8bit |
| X-Trace | online.de 1402725122 15277 62.158.110.165 (14 Jun 2014 05:52:02 GMT) |
| X-Complaints-To | abuse@einsundeins.com |
| NNTP-Posting-Date | Sat, 14 Jun 2014 05:52:02 +0000 (UTC) |
| User-Agent | Unison/2.1.10 |
| Xref | csiph.com comp.lang.java.programmer:28726 |
Show key headers only | View raw
On 2014-06-13 21:32:20 +0000, Eric Sosman said:
> On 6/13/2014 4:52 PM, Philipp Kraus wrote:
>> Hello,
>>
>> I would like to create a class which implements a Map and a Queue with
>>
>> class myMapQueue<A,B> extends myAbstractClass implements Map<A,B>,
>> Queue<B> {}
>>
>> The problem is the remove(Object) method, because the method is defined
>> in the Queue and the Map
>> interface in the Queue with boolean remove(Object) and in the Map with V
>> remove(Object), so I get
>> a "clash error". How can I solve this problem.
>
> "Favor composition over inheritance." -- Bloch
>
> In short, I don't believe you can do what you want -- not in the
> way you want to do it. An alternative might be to implement Map<A,B>
> in an outer class, one that also contains a Queue<B> implementation as
> an inner class. The outer class would also have a getQueue() method
> to return an instance of the inner class -- whether that's a new
> instance created on the fly or a single instance that's created once
> per outer class is up to you.
>
> For even more "favoritism," you could have the outer class
> implement neither Map nor Queue, and delegate both those interfaces
> to inner classes.
Thanks you both for the idea, but it is not nice to do this with
different inner structures, because
I need on the class the interface of Map and Queue, because an object
of myMapQueue should
use with the Java Map or Queue structure. On the idea:
class myMapQueue<K,V> {
private myMap implements Map<K,V> {}
private Queue implements Queue<V> {}
public Map<K,V> getMap() {}
public Queue<V> getQueue() {}
}
I need always the getMap or getQueue call before I can use the internal
datastructure.
Thanks a lot for the idea, but I need first to redfine my classes for a
better code structure
Phil
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Queue and Map interface Philipp Kraus <philipp.kraus@flashpixx.de> - 2014-06-13 22:52 +0200
Re: Queue and Map interface Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-06-13 17:32 -0400
Re: Queue and Map interface markspace <markspace@nospam.nospam> - 2014-06-13 16:52 -0700
Re: Queue and Map interface Philipp Kraus <philipp.kraus@flashpixx.de> - 2014-06-14 07:52 +0200
Re: Queue and Map interface Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-06-14 08:41 -0400
csiph-web