| Author |
ClassCastException
|
jose chiramal
Ranch Hand
Joined: Feb 12, 2010
Posts: 266
|
|
Why do I get this exception :
public static void main (String args[])
{
Set st2 = (Set) new TreeSet();
st2.add(new Integer(1));
}
java.lang.ClassCastException
at Basic.TreeSet.main(TreeSet.java)
Exception in thread "main"
|
 |
Ernest Friedman-Hill
author and iconoclast
Marshal
Joined: Jul 08, 2003
Posts: 24041
|
|
From the stack trace, I see that this method is in a class called "TreeSet". So in main(), you're constructing an instance of this containing class, not the java.util.TreeSet you were expecting. Since Basic.TreeSet doesn't implement Set, boom. A ClassCastException.
It's always a bad idea to name a class after a class that appears in the core Java APIs!
|
[Jess in Action][AskingGoodQuestions]
|
 |
Joanne Neal
Rancher
Joined: Aug 05, 2005
Posts: 3011
|
|
|
It appears that code is in a file called TreeSet.java, so presumably it contains a TreeSet class. Does that class implement the Set interface ? If not, the you can't cast it to a Set (and if it did then you wouldn't need to cast it).
|
Joanne
|
 |
Xiong Neng
Greenhorn
Joined: Mar 03, 2009
Posts: 1
|
|
I suppose the TreeSet is not the java.util.TreeSet.
|
 |
Campbell Ritchie
Sheriff
Joined: Oct 13, 2005
Posts: 32599
|
|
Xiong Neng, welcome to JavaRanch
|
 |
 |
|
|
subject: ClassCastException
|
|
|