File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes ClassCastException Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "ClassCastException" Watch "ClassCastException" New topic


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));

at Basic.TreeSet.main(
Exception in thread "main"
Ernest Friedman-Hill
author and iconoclast

Joined: Jul 08, 2003
Posts: 24199

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

Joined: Aug 05, 2005
Posts: 3742
It appears that code is in a file called, 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).

Xiong Neng

Joined: Mar 03, 2009
Posts: 1
I suppose the TreeSet is not the java.util.TreeSet.
Campbell Ritchie

Joined: Oct 13, 2005
Posts: 46412
Xiong Neng, welcome to JavaRanch
I agree. Here's the link:
subject: ClassCastException
It's not a secret anymore!