//convert a string containing an IP address to a byte[]
byte[] IPAddressBytes = InputIPAddress.getBytes();
//Add the byte[] to the TreeSet
MyTreeSet.add(IPAddressBytes);
This is being run inside a loop. The first time through, it runs just
fine. The second time through, I get the following exception:
Exception in thread "main" java.lang.ClassCastException: [B
at java.util.TreeMap.compare(TreeMap.java:1093)
at java.util.TreeMap.put(TreeMap.java:465)
at java.util.TreeSet.add(TreeSet.java:210)
If I try putting this in a try block, I get:
OutgoingConnectionHandler: Add:java.lang.ClassCastException: [B
I have no clue what [B is supposed to mean. Any ideas? What am I
doing wrong here?
Thanks!
How do you compare two arrays of byte? If you don't have a Comparator
then I think that is where your problem lies.
--
Knute Johnson
email s/nospam/linux/
--
Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
------->>>>>>http://www.NewsDemon.com<<<<<<------
Unlimited Access, Anonymous Accounts, Uncensored Broadband Access
"[B" is the internal name for the class "Array of bytes". What's
going on is that TreeSet keeps its entries sorted, meaning that it
needs a way to compare two elements to each other. When you add the
first element, there's nothing to comapre it to, so you're OK. When
you add the second element, the TreeSet code casts both the
Comparable, so it can compare them, but "array of byte" doesn't
implement Comparable, hence the exception. (I'm assuming you didn't
create the TreeSet to use a Comaprator rather than the "natrual
ordering" imposed by Comparable; if you had, we'd see its compare
method on the stack trace.)
Why are you using a TreeSet? If it's because you do want to keep the
addreses sorted in some order, then you need to implement a Comparator
that implements that ordering and specify it when constructing the
TreeSet object. If not, you're using the wrong Set implementation.
>ClassCastException
see
http://mindprod.com/jgloss/runerrormessages.html#CLASSCASTEXCEPTION
Chances are you forgot to implement Comparable or declare than you
were implementing Comparable on your custom class.
--
Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com
The "custom class" in this case was "array of bytes"; not much chance
of implementing Comparable on that.