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


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

Support Map<String, String> & Map<String, MyString>

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!gegeweb.42!gegeweb.eu!nntpfeed.proxad.net!proxad.net!feeder1-1.proxad.net!198.186.194.250.MISMATCH!news-out.readnews.com!news-xxxfer.readnews.com!postnews.google.com!5g2000yqo.googlegroups.com!not-for-mail
From albert kao <albertkao3@gmail.com>
Newsgroups comp.lang.java.programmer
Subject Support Map<String, String> & Map<String, MyString>
Date Thu, 6 Oct 2011 12:05:45 -0700 (PDT)
Organization http://groups.google.com
Lines 74
Message-ID <dbb47bbb-1583-4b6d-a769-833fe220f9f3@5g2000yqo.googlegroups.com> (permalink)
NNTP-Posting-Host 198.103.184.76
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-1
X-Trace posting.google.com 1317927945 4905 127.0.0.1 (6 Oct 2011 19:05:45 GMT)
X-Complaints-To groups-abuse@google.com
NNTP-Posting-Date Thu, 6 Oct 2011 19:05:45 +0000 (UTC)
Complaints-To groups-abuse@google.com
Injection-Info 5g2000yqo.googlegroups.com; posting-host=198.103.184.76; posting-account=Qp4wBAoAAAAKeqMjnJXQBpmK6ZPaDDDy
User-Agent G2/1.0
X-Google-Web-Client true
X-Google-Header-Order ARLUEHCNK
X-HTTP-UserAgent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022),gzip(gfe)
Xref x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:8603

Show key headers only | View raw


The following programs work but I like to combine MyComboBox &
MyComboBox2 into one class so that both Map<String, String> &
Map<String, MyString> data types are supported in the single combined
class.
How to do that?

public class MyComboBox extends LangComboBox implements
PropertyChangeListener {
  protected EventListenerList listenerList = new EventListenerList();
  private Set keySet = Collections.EMPTY_SET;

  public MyComboBox(Map items) {
        super(items.values().toArray());
        keySet = items.keySet();
  }
  //...
}

public class MyComboBox2 extends LangComboBox implements
PropertyChangeListener {
  protected EventListenerList listenerList = new EventListenerList();
  private Set keySet = Collections.EMPTY_SET;

  public MyComboBox2(Map<String, MyString> items) {
        super(MyStringUtil.sort(items).values().toArray());
        Map<String, MyString> itemsSorted = MyStringUtil.sort(items);
        keySet = itemsSorted.keySet();
  }
  //...
}

public class MyStringUtil
       public static Map<String, MyString> sort(
             Map<String, MyString> map) {
             //...
       }
}

// Calling program
Map<String, String> map1 = getdata("data1");
MyComboBox box1 = new MyComboBox(map1);  // this is ok
Map<String, MyString> map2 = getdata2("data2");
MyComboBox2 box2 = new MyComboBox2(map2); // this is ok



MyString is a third party class which I don't have the source code. It
has the toString() method.
It does not implement CharSequence.
MyComboBox cannot have two constructors because of type erasure of the
generic type java.util.Map, the two methods are considered the same:
public MyComboBox(Map<String, String> items) {
   //...
   }
public MyComboBox(Map<String, MyString> items) {
      //...
}
// These are the compile errors:
Duplicate method MyComboBox(Map<String,String>) in type MyComboBox
client/swing/components MyComboBox.java
Duplicate method MyComboBox(Map<String,MyString>) in type MyComboBox
client/swing/components MyComboBox.java



The following code gets ClassCastException.
Map<String, String> map1 = getdata("data1");
// this will cause casting exception - Exception in thread "AWT-
EventQueue-0"
// java.lang.ClassCastException: java.lang.String cannot be cast to
mycom.lang.MyString
// at myproj.client.swing.util.MyStringUtil
$MapComparable.compare(MyStringUtil.java:25)
MyComboBox2 box1 = new MyComboBox2(map1);

Back to comp.lang.java.programmer | Previous | NextNext in thread | Find similar


Thread

Support Map<String, String> & Map<String, MyString> albert kao <albertkao3@gmail.com> - 2011-10-06 12:05 -0700
  Re: Support Map<String, String> & Map<String, MyString> Lew <lewbloch@gmail.com> - 2011-10-06 13:02 -0700
    Re: Support Map<String, String> & Map<String, MyString> Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-10-06 13:23 -0700
      Re: Support Map<String, String> & Map<String, MyString> albert kao <albertkao3@gmail.com> - 2011-10-06 14:07 -0700
        Re: Support Map<String, String> & Map<String, MyString> Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-10-06 15:42 -0700
          Re: Support Map<String, String> & Map<String, MyString> albert kao <albertkao3@gmail.com> - 2011-10-06 17:54 -0700
          Re: Support Map<String, String> & Map<String, MyString> albert kao <albertkao3@gmail.com> - 2011-10-06 18:09 -0700
    Re: Support Map<String, String> & Map<String, MyString> albert kao <albertkao3@gmail.com> - 2011-10-06 13:32 -0700
      Re: Support Map<String, String> & Map<String, MyString> Lew <lewbloch@gmail.com> - 2011-10-06 19:03 -0700
        Re: Support Map<String, String> & Map<String, MyString> albert kao <albertkao3@gmail.com> - 2011-10-06 20:33 -0700
  Re: Support Map<String, String> & Map<String, MyString> Roedy Green <see_website@mindprod.com.invalid> - 2011-10-07 02:41 -0700
    Re: Support Map<String, String> & Map<String, MyString> albert kao <albertkao3@gmail.com> - 2011-10-07 03:49 -0700
      Re: Support Map<String, String> & Map<String, MyString> Roedy Green <see_website@mindprod.com.invalid> - 2011-10-07 10:48 -0700

csiph-web