Use of instanceof  in java

can any one tell me the use of instanceof keyword in java
.and how it is used.
and were it is used
reply me
regerd
saravana

Okay, understood.
However, I'm receiving a ClassCastException "unexpectedly".
Definitions:
public interface MyInterface { // definition }
public class MyAbstractSuperClass implements MyInterface { // definition }
public class MySubClass extends MyAbstractSuperClass { // definition }
public class ProvidingClass {
       * Returns instance of MyInterface.
      public MyInterface getMyInterfaceObj(Class className) {
            return myInterfaceObj;
}This code ...
Code A:
MySubClass mySubClassObj = (MySubClass)ProvidingClass.getMyInterfaceObj(MySubClass.class);... throws a ClassCastException.
Consider the following code based on the same definitions above.
Code B:
MyInterface myInterfaceObj = ProvidingClass.getMyInterfaceObj(MySubClass.class);
if (myInterfaceObj instanceof MySubClass) {
      // Do stuff
else {
      System.out.println("Found class:  " + myInterfaceObj.getClass().getCanonicalName());
Result:
... I get the following:
"Found class: fully.qualified.package.name.MySubClass"
Question:
Why do I receive a ClassCastException in Code A when the class that is returned in Code B indicates (through getCanonicalName() ) that it is of the type that I am trying to cast it to?
What would cause such an exception?
Thank you for your help!
- KFM
Edited by: jackstr66 on Nov 1, 2007 12:09 PM
Edited by: jackstr66 on Nov 1, 2007 12:10 PM

Similar Messages

  • How to use excel api in java?

    I need to use excel api in Java to generate data in excel format. Can any one tell any of the use ful Excel api that we can down load from net? i have read about Apache's POi-hssf-Java api. But the jar i downloaaded from Apache site is not working ? Can anybody please send me the jar for taht Api ?

    Hi,
    In fact i was not clear about whcih jar file to download from the apache site. i found one folder structure like this
    -parent
    -bin
    -src
    All these folders contained some zip files. i took the zip files and extracted them. And i set teh class path also . But when i tried to import in java programs ,these jar files are giving compilation errors

  • Unable to Print Purchase order automatically using SAP GUI for JAVA

    Hi SAP gurus,
    Some of the PC's in our company use windows and some LINUX. Therefore we use two types of SAP GUI. One for windows and the other one JAVA. PO approval was set to print automatically. In a windows setting, there are no problems with this setup. But in SAP GUI for JAVA, no print outs are produced and no error messages are displayed. I am using SAP GUI for JAVA version 7.10 ver 6. and I use Front end printing for linux access method G.
    please help,
    gungertz

    hi gungertz,
    You can use U type access method for printing SAP document using linux desktop.
    Please refer to my blog posting here (http://sapbasis.wordpress.com/2007/08/23/print-sap-documents-using-linux/)
    ardhian
    http://ardhian.kioslinux.com
    http://sapbasis.wordpress.com

  • Using Oracle Berkeley DB Java Edition RELEASE 3.2

    Hi,
    I am completely new to Oracle. I intend to use Oracle Berkeley DB Java Edition RELEASE 3.2., in conjunction with Java.
    Can some one help me figure out what documentation I should use, and the learning path ?
    Any suggestions would be greatly appreciated.
    Thanks
    Ravi Banthia
    Kolkata

    Please refer
    http://www.oracle.com/technology/products/berkeley-db/je/index.html

  • Can I Design a Forum with using web dynpro for java?

    Hi All:
        Can i design a forum with using web dynpro for java?
        I want to design an application like a simple forum which maybe has many replies.So if i use
    the UI technology "web dynpro for java", i will to create UI elements dynamically.How can i control this
    dynamical UI elements to keep layout ?

    Hi,
    yes you can do that....
    for exaple if you observe SDN...
    you can imagine like....
    A big Transparent Container(TC)....
    Inside that number of other TCs(depending upon the question nd its replies...)....
    In side each TC, again around 9 UIElements....
    one for menioning what is the question/reply?
    other for your description of question/reply...
    other for your name,
    displaing your fourm point... etc...
    So it will be
    for(loop till your (Question+No of replies))
    Create Transparent Container....
    Add Childs to the Container...
    Decide your layout....
    In case if you want to know how to create UIElements dynamically....
    http://help.sap.com/saphelp_nw04/helpdata/en/4f/07cf3dd28b5610e10000000a114084/frameset.htm
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/wdjava/dynamic%2bui%2bgeneration
    Regards,
    Srinivas.
    Regards,
    Srinivas.

  • Commenting a Line in ABAP Editor when using SAP GUI for java

    Hi,
    In ABAP editor we can highlight the line which are to be comment and use cmd+< sign to comment those lines. What will be the command to be used to achieve the same functionality when using SAP GUI for JAVA on an iMac.

    Hello Kedar,
    please check with SAP GUI for Java 7.20 rev 5 before submitting a bug report.
    Also please verify, that cmd-< and cmd-> are not assigned as "Keyboard Shortcuts" in the "Keyboard" control panel of "System Preferences".
    Bug reports can be submitted with the [SAP Message Wizard|http://service.sap.com/message], for SAP GUI for Java please use component BC-FES-JAV.
    Best regards
    Rolf-Martin

  • How to use host variable in Java?

    How do I use host variable in java? I am getting SQL code of -404 and description of SQL code is The UPDATE or INSERT statement specifies a String that is too long column-name SQLSTATE=22001. Below is my code:
    * i n s e r t M e s s a g e
    * insertMessage: This method will retrive detail message and other fields for
    * selected item from screen1.
    public final Collection insertMessage(String businessId,String messageNumber,String messageType,
    String messageTitle,String printStyle,String statusIndicator,
    String approverId,String lastUpdateId,String longMessage) {
    MessageTransport msi = new MessageTransport();
    PreparedStatement ps = null;
    Connection connection = null;
    MessageTransport msi1 = new MessageTransport();
    PreparedStatement ps1 = null;
    Connection connection1 = null;
    ArrayList list = new ArrayList();
    try {
    if (businessId != null) {
    businessId = businessId.trim();
    if (messageNumber != null) {
    messageNumber = messageNumber.trim();
    if (messageType != null) {
    messageType = messageType.trim();
    if (messageTitle != null) {
    messageTitle = messageTitle.trim();
    if (printStyle != null) {
    printStyle = printStyle.trim();
    if (statusIndicator != null) {
    statusIndicator = statusIndicator.trim();
    if (approverId != null) {
    approverId = approverId.trim();
    if (lastUpdateId != null) {
    lastUpdateId = lastUpdateId.trim();
    if (longMessage != null) {
    longMessage = longMessage.trim();
    int len = longMessage.length();
    if (len > 254) {
    int constant = 254;
    int k = len % constant; //k will hold value that has number of loops including initial insert.
    k = k - 1; //this is for total number of loop.
    int j = len / constant; //this will have remainder if any to insert rest of longmessage.
    System.out.println("Display remainder: " + k);
    System.out.println("Display divisible: " + j);
    System.out.println("Display Length of longMessage: " + len);
    StringBuffer sql = new StringBuffer();
    sql.append("INSERT INTO " + MESSAGE_TBL + " ( MT_BUS_ID,MT_MSG_NBR,MT_MSG_TYPE,MT_MSG_TITLE,MT_PRINT_STYLE,MT_APV_STATUS,MT_APV_ID,MT_APV_DT,MT_APV_TM,MT_LAST_UPDATE_ID,MT_LAST_UPDATE_DT,MT_LAST_UPDATE_TM,MT_MSG_TXT ) VALUES ");
    sql.append("(");
    sql.append("'");
    sql.append(businessId).append("'");
    sql.append(",").append(messageNumber);
    sql.append(",").append("'I'");
    sql.append(",").append("'").append(messageTitle).append("'");
    sql.append(",").append("'").append(printStyle).append("'");
    sql.append(",").append("'P'");
    sql.append(",").append("' '");
    sql.append(",").append("CURRENT DATE");
    sql.append(",").append("CURRENT TIME");
    sql.append(",").append("'").append(lastUpdateId).append("'");
    sql.append(",").append("CURRENT DATE");
    sql.append(",").append("CURRENT TIME");
    sql.append(",").append("'").append(longMessage).append("'");
    sql.append(")");
    System.out.println("Display SQL Statement: " + sql);
    connection = DriverManager.getConnection(DATABASE_URI, USER, PASS);
    ps = connection.prepareStatement(sql.toString());
    ps.executeUpdate();
    System.out.println("Refreshed Record: ");
    catch (SQLException sqle) {
    System.out.println("SQLException: "+ sqle + ". SQLSTATE=" + sqle.getSQLState()+" SQLCODE=" + sqle.getErrorCode());
    finally {
    if (ps != null) {
    try {
    ps.close();
    ps=null;
    catch (Exception e) {}
    if (ps1 != null) {
    try {
    ps1.close();
    ps1=null;
    catch (Exception e) {}
    if (connection != null) {
    try {
    connection.close();
    connection = null;
    catch (Exception e) {}
    if (connection1 != null) {
    try {
    connection1.close();
    connection1 = null;
    catch (Exception e) {}
    return list;
    if my longMessage is smaller like one line then everything works fine, but as soon as my longMessage if greater than 254 it starts giving me -404. How do I work around or Is there any way to use host variable in Java?
    All kind of help is appreciated. Any question then please email me at [email protected].
    Thank you.

    This is what you got to do to insert a larger value.
    //Assuming that message length is less than 254+ 254 characters.
    //If larger then run the update loop that many times.
    String longMessage = "Blah blah ... ";
    String firstPart = "";
    String secondPart = "";
    int messageLength = longMessage.length();
    if (messageLength > 254)
         try
              firstPart = longMessage.subString(0, 253);
              secondPart = longMessage.subString(254, message);
         catch (IndexOutOfBoundsException e)
    //In the first insert  set the first 254 characters
    ps.setString(1, firstPart);
    int result = ps.executeUpdate();
    if (result != 0)
           System.out.println("Insert  sucessful  ");
           if (messageLength > 254)
                //now update with the second part.
                static String UPDATE_SECOND_PART = UPDATE my.table SET LONG_COL = LONG_COL || ? WHERE KEY_COL = ?;
                ps2 = connection.getPreparedStatement(UPDATE_SECOND_PART);
                ps2.setString(1, secondPart);
                ps2.setString(2, businessId);  //assuming that businessId is the primary key.
                int result2 = ps2.executeUpdate();
                if (result2 != 0)
                      System.out.println("Update  sucessful  ");
                else
                     System.out.println("Update failed ");
    else
           System.out.println("Insert failed ");
    }Hope this helps.

  • How to use sql query in java ?

    i don't know how to use sql query in java code.
    who can give me some advice?
    thanks

    http://java.sun.com/developer/onlineTraining/Database/JDBC20Intro/

  • How can i use Unix database in java?

    How can i use Unix database in Java?
    Message was edited by:
    JPro

    I have not a clue about FoxPro, but the db then is FoxPro and not Unix. The better question would be "How do I connect to FoxPro DB running on Unix with JDBC?".
    My answer to that would be, search the Internet for a JDBC driver.

  • How to use Thread.sleep() with Java Berkeley Base API?

    Hi,
    I have explained the weird problem about the server was too busy to response to SSH but it continued to finish to run (Server not response when inserting millions of records using Java Base API
    Even I tried to increase CachSize and renice Java program, but it did not work. So, I am thinking to set sleeping time for threads in Java Berkeley Base API (using “ps” command, there were 18 light weight processes created). My program did not implement transaction or concurrency because it simply creates (millions) databases records only. Is it possible and correct to do like this in the code:
    try{
    //do create a db record
    Thread.currentThread().sleep(1000);//sleep for 1000 ms
    catch(ItrerruptedException ie){
    Thank you for your kindly suggestion.
    Nattiya

    where can I get the help doc about use AT commands in java.
    Can you give me some code example about this. It is
    difficulty to me to write it myself.You simply have to send the characters and receive the characters via the comm extension. Here is the ITU standard command set - http://ridge.trideja.com/wireless/atcommands/v250.pdf. Various modems and other devices extend this in a number of ways, you may need to find documentation specific to your device as well. But start with the standard.

  • Using .ocx file in java

    hi
    i have a ocx file and i want to call the functions in this ocx file from java.
    can anyone help me in using ocx functions in java program
    thanking you

    get freeware API (njawin11.zip) at http://simtel.net/pub/winnt/java/

  • Parsing an XML using DOM parser in Java in Recursive fashion

    I need to parse an XML using DOM parser in Java. New tags can be added to the XML in future. Code should be written in such a way that even with new tags added there should not be any code change. I felt that parsing the XML recursively can solve this problem. Can any one please share sample Java code that parses XML recursively. Thanks in Advance.

    Actually, if you are planning to use DOM then you will be doing that task after you parse the data. But anyway, have you read any tutorials or books about how to process XML in Java? If not, my suggestion would be to start by doing that. You cannot learn that by fishing on forums. Try this one for example:
    http://www.cafeconleche.org/books/xmljava/chapters/index.html

  • Parsing xml using DOM parser in java

    hi there!!!
    i don have much idea about parsing xml.. i have an xml file which consists of details regarding indentation and spacing standards of C lang.. i need to read the file using DOM parser in java n store each of the attributes n elements in some data structure in java..
    need help as soon as possible!!!

    DOM is the easiest way to parse XML document, google for JDOM example it is very easy to implement.
    you need to know what is attribute, what is text content and what is Value in XML then easily you can parse your document with dom (watch for space[text#] in your XML document when you parse it).
    you get root node then nodelist of childs for root then go further inside, it is easy believe me.

  • How to use the build-in Java parser

    Hi All,
    I want do use the build-in Java parser. Is this possible? For example I have the following code:
    package ch.fhnw;
    import javax.tools.*;
    public class JavacExample {
         * @param args
        public static void main(String[] args) {
         JavaCompiler javac = ToolProvider.getSystemJavaCompiler();
         String arguments = "./src/ch/fhnw/JavacExample.java";
         int rc = javac.run(null , null, null, "-verbose", arguments);
         System.out.println("Return value: " + rc);
    }After parsing, it would be great to have an object or similar which contains the methods, arguments used by the methods, etc. The target is to extract method declarations from java files. Is there a simple way to do it without defining my own EBNF like in JavaCC? Or any other way?
    Thank you for your help.
    kind regards,
    wolfgang

    Yep. bootstrap your knowledge here
    [http://java.sun.com/javase/6/docs/technotes/guides/javac/index.html]
    [http://forum.java.sun.com/forum.jspa?forumID=514]
    Bruce

  • How to use XSLT processor in java to get xml

    hi friends,
    i have raw xml and xsl files as input to xsltprocessor which should give xml as output.
    my raw xml and xsl looks like this:-
    name_space.xml:-
    <xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
    xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
    xmlns:rs='urn:schemas-microsoft-com:rowset'
    xmlns:z='#RowsetSchema'>
    <s:Schema id='RowsetSchema'>
    <s:ElementType name='row' content='eltOnly'>
    <s:AttributeType name='ID' rs:number='1' rs:nullable='true'
    rs:writeunknown='true'>
    <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10'
    rs:fixedlength='true'/>
    </s:AttributeType>
    <s:AttributeType name='CODE' rs:number='2' rs:nullable='true'
    rs:writeunknown='true'>
    <s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='50'/>
    </s:AttributeType>
    <s:AttributeType name='NAME' rs:number='3' rs:nullable='true'
    rs:writeunknown='true'>
    <s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='255'/>
    </s:AttributeType>
    <s:AttributeType name='SOURCE' rs:number='4' rs:nullable='true'
    rs:writeunknown='true'>
    <s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='10'/>
    </s:AttributeType>
    <s:AttributeType name='IDENT' rs:number='5' rs:nullable='true'
    rs:writeunknown='true'>
    <s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='128'/>
    </s:AttributeType>
    <s:AttributeType name='OBS_LEVEL' rs:number='6' rs:nullable='true'
    rs:writeunknown='true'>
    <s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='50'/>
    </s:AttributeType>
    <s:AttributeType name='ATA_CODE' rs:number='7' rs:nullable='true'
    rs:writeunknown='true'>
    <s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='12'/>
    </s:AttributeType>
    <s:AttributeType name='SCORE' rs:number='8' rs:nullable='true'
    rs:writeunknown='true'>
    <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10'
    rs:fixedlength='true'/>
    </s:AttributeType>
    <s:AttributeType name='HAS_EFF_NOTE' rs:number='9' rs:nullable='true'
    rs:writeunknown='true'>
    <s:datatype dt:type='ui1' dt:maxLength='1' rs:precision='3'
    rs:fixedlength='true'/>
    </s:AttributeType>
    <s:extends type='rs:rowbase'/>
    </s:ElementType>
    </s:Schema>
    <rs:data>
    <z:row ID='1018' CODE='OBSV' NAME='ALT BRK - LOSS OF THE PEDAL ARTIFICIAL FEEL ON THE RIGHT SIDE'
    SOURCE='' IDENT='' OBS_LEVEL='' ATA_CODE='32-43' SCORE='1'
    HAS_EFF_NOTE='0'/>
    <z:row ID='1017' CODE='OBSV' NAME='ALT BRK - LOSS OF THE PEDAL ARTIFICIAL FEEL ON THE LEFT SIDE'
    SOURCE='' IDENT='' OBS_LEVEL='' ATA_CODE='32-43' SCORE='1'
    HAS_EFF_NOTE='0'/>
    <z:row ID='100' CODE='LOCAL' NAME='ACCU PRESS DROPS VERY QUICKLY PARKING BRAKE OFF'
    SOURCE='' IDENT='' OBS_LEVEL='INDICATOR(S)' ATA_CODE='32-44'
    SCORE='1' HAS_EFF_NOTE='0'/>
    </rs:data>
    </xml>
    and my XSL File:-
    <?xml version="1.0" encoding="UTF-8" ?>
    - <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" exclude-result-prefixes="rs z">
    <xsl:output method="xml" omit-xml-declaration="yes" indent="yes" />
    - <xsl:template match="//xml/rs:data">
    - <Entities Count="{count(z:row)}">
    <xsl:apply-templates select="z:row" />
    </Entities>
    </xsl:template>
    - <xsl:template match="z:row">
    <Entity ID="{@ID}" ATA="{@ATA_CODE}" Name="{@NAME}" Code="{@CODE}" Source="{@SOURCE}" Ident="{@IDENT}" Level="{@OBS_LEVEL}" EffNote="{@HAS_EFF_NOTE}" Score="{@SCORE}" />
    </xsl:template>
    </xsl:stylesheet>
    AND I NEED OUTPUT XML AS:-
    <Entities Count="3">
         <Entity ID="1018" ATA="32-43" Name="ALT BRK - LOSS OF THE PEDAL ARTIFICIAL FEEL ON THE RIGHT SIDE" Code="OBSV" Source="" Ident="" Level="" EffNote="0" Score="1"></Entity>
         <Entity ID="1017" ATA="32-43" Name="ALT BRK - LOSS OF THE PEDAL ARTIFICIAL FEEL ON THE LEFT SIDE" Code="OBSV" Source="" Ident="" Level="" EffNote="0" Score="1"></Entity>
         <Entity ID="100" ATA="32-44" Name="ACCU PRESS DROPS VERY QUICKLY PARKING BRAKE OFF" Code="LOCAL" Source="" Ident="" Level="INDICATOR(S)" EffNote="0" Score="1"></Entity>
    </Entities>
    how to write a bean to get this xmloutput.
    thank in advance

    Hi Sliba,
    You may download and use the XDK for Java that is available from OTN to do this.
    Here is the code that will be handy for use. Just substitute your XML document and stylesheet
    in the code snippet pasted below. I hope this helps.
    There are many more useful XML samples you can find at http://otn.oracle.com/sample_code/tech/xml/content.html
    Regards
    Abhijeet
    // import the necessary libraries
    import oracle.xml.parser.v2.XSLProcessor;
    import oracle.xml.parser.v2.XSLStylesheet;
    import oracle.xml.parser.v2.XMLDocument;
    import oracle.xml.parser.v2.DOMParser;
    import java.io.StringReader;
    public class Test
    public Test()
    // Xml document that needs to be transformed
    private static String xmldoc = "<xml xmlns:s=\"http:www.myschema.com\" >" +
    "<s:result>" +
    "<s:status>1234554321</s:status>"+
    "<s:approvalcode>1234567887654321</s:approvalcode> "+
    "</s:result>" +
    "</xml>";
    // Xsl stylesheet that will be applied
    private static String xsldoc ="<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:s=\"http:www.myschema.com\" > " +
    " <xsl:template match=\"s:result\"> "+
    " My transform status: <xsl:value-of select=\"s:status\"/> <BR/>" +
    " My transform Approval code : <xsl:value-of select=\"s:approvalcode\"/> " +
    "</xsl:template> " +
    "</xsl:stylesheet> ";
    public void transform(String xmlstr,String xslstr) throws Exception {
    // Create the DOM parser instance
    DOMParser dp = new DOMParser();
    // Create StringReader object
    StringReader xmlreader = new StringReader(xmlstr);
    // Parse the xml document string
    dp.parse(xmlreader);
    // Get java object representation of XML document
    XMLDocument xmldoc = dp.getDocument();
    // Create an instance of XSL processor
    XSLProcessor processor = new XSLProcessor();
    // Create StringReader object
    StringReader xslreader = new StringReader(xslstr);
    // Parse the xsl stylesheet
    XSLStylesheet xsl = processor.newXSLStylesheet(xslreader);
    processor.showWarnings(true);
    processor.setErrorStream(System.err);
    processor.processXSL(xsl,xmldoc,System.out);
    return;
    public static void main(String[] args) throws Exception
    Test test = new Test();
    System.out.println("Executing test");
    test.transform(xmldoc,xsldoc);
    }

Maybe you are looking for

  • Could not open scratch file because the file is locked or you do not have the necessary access rights.

    could not open scratch file because the file is locked or you do not have the necessary access rights.

  • "p" key not working

    I've been having an intermittent problem for some time now with my MacBook Pro keyboard. The "p", "0" and _ keys will suddenly stop working. Sometimes I can fix the problem by opening TextEdit and typing in the the text window. Sometimes it seems to

  • View asset history sheet

    Hi in our case fiscal year is calender year JAn to Dec. However for the legal point of view we have to close our books also for FY April to March every year In asset accouting asset history sheet show the values starting from January (as per fiscal y

  • One license on different computers?

    I have one Photoshop CS6 license.  I have installed it on my Imac.  When trying to install it on my MacBook i get a message saying "Invalid license number.  Does this mean i must by one license for each computer? Regards Eyvind

  • Logistic Invoice with price

    Hi guys, my problem is this:when I register a Logistic invoice with a different price in relation to Purchase Order the system correctly creates also automatically a document of type PR but (I don't understand this) with a  posting date different fro