Re: casting class to interface




Mark wrote:
I get an exception ("ClassCastException") when I try to cast Resource
to Comparable2... any idea why?

// Resource.java


class Resource
{

private String title, firstName, lastName, publisher, dateOfEdition,
ISBN, libraryCallNumber;
private int numberOfPages, editionNumber;


Resource(String title,String ISBN,String libraryCallNumber,String
publisher, String firstName,
String lastName, int editionNumber,String dateOfEdition,int
numberOfPages)
{
this.title = title;
this.ISBN = ISBN;
this.libraryCallNumber = libraryCallNumber;
this.publisher = publisher;
this.firstName = firstName;
this.lastName = lastName;
this.editionNumber = editionNumber;
this.dateOfEdition = dateOfEdition;
this.numberOfPages = numberOfPages;
}



public String toStringLong()
{
return " Title: " + title + "\n"
+ " ISBN: " + ISBN + "\n"
+ " Library Call Number: " + libraryCallNumber + "\n"
+ " Publisher: " + publisher + "\n"
+ " Author: " + firstName + " " + lastName +
"\n"
+ " Edition Number: " + editionNumber + "\n"
+ " Date of Edition: " + dateOfEdition + "\n"
+ " Number of Pages: " + numberOfPages + "\n";
}

public String toString() {
return title + " - " + firstName + " " + lastName;
}


public String toStringEncoded() {
final String glue = ";";
return title + glue + ISBN + glue + libraryCallNumber + glue +
publisher + glue + firstName + glue
+ lastName + glue + editionNumber + glue + dateOfEdition + glue +
numberOfPages + "\n";
}



public String toString1() {
return lastName + firstName + title + editionNumber + publisher;
}


public String toString2() {
return title + editionNumber + publisher + lastName + firstName;
}


public int compareTo1(Comparable2 obj) {
return toString1().compareToIgnoreCase(obj.toString1());
}


public int compareTo2(Comparable2 obj) {
return toString2().compareToIgnoreCase(obj.toString2());
}
}

// Comparable2.java

public interface Comparable2
{
public String toString1();
public String toString2();

public int compareTo1( Comparable2 obj );
public int compareTo2( Comparable2 obj );

}



That is because "Resource is not a Comparable2"
please declare Resource like this:
class Resource implements Comparable2{
}

.



Relevant Pages

  • casting class to interface
    ... to Comparable2... ... private String title, firstName, lastName, publisher, dateOfEdition, ... public String toStringLong() ... public int compareTo1{ ...
    (comp.lang.java.programmer)
  • Re: Arraylist.remove problem?? Please help.
    ... static string group; ... private string subject; ... private int messageNumber; ... public string Subject ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Arraylist.remove problem?? Please help.
    ... static string group; ... private string numb; ... private int messageNumber; ... public string Subject ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Arraylist.remove problem?? Please help.
    ... static string group; ... private string numb; ... private int messageNumber; ... public string Subject ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: C# coding style question
    ... public string MyMethod ... private string m_name = null; ... public int Age ...
    (microsoft.public.dotnet.languages.csharp)