Object class....new a[ ]

The following program is giving a compile error, because b[0] can't be accessed....i don't want to make it work by completely changeing it, but to understand what I should change to access that vector ....using "*Object b=a;*".....
public class test{
   public static void main(String args[]){
      int a[]={2,6};
     Object b=a;
   /* I've tryed:
       System.out.print(a+" "+b+" ");// they have the same adress
       System.out.print(b.getClass().getName());//console: *[I* .....so it is a vector,and it is int type
    System.out.print(b[0]+" ");
}So...the problem is that I don't understand what is wrong and I want to use the same idea....
It should write 2; I mean, if b is a vector of integers an is a pointer for a (have the same adress....)
I hope I've explain enough clear.
Thanks!

elena_mishu wrote:
The following program is giving a compile error, because b[0] can't be accessed....i don't want to make it work by completely changeing it, but to understand what I should change to access that vector ....using "*Object b=a;*".....
public class test{
public static void main(String args[]){
int a[]={2,6};
Object b=a;
/* I've tryed:
System.out.print(a+" "+b+" ");// they have the same adress
System.out.print(b.getClass().getName());//console: *[I* .....so it is a vector,and it is int type
System.out.print(b[0]+" ");
}So...the problem is that I don't understand what is wrong and I want to use the same idea....
It should write 2; I mean, if b is a vector of integers an is a pointer for a (have the same adress....)
I hope I've explain enough clear.
Thanks!What are you trying to accomplish? If you just want to print the array, you can use [java.util.Arrays.toString|http://java.sun.com/javase/6/docs/api/java/util/Arrays.html#toString(int[])], or, if that doesn't meet your need, write your own method that iterates over the array and prints the elements you want.
And yes, a and b have the same address. That's the way reference variable assignment works in Java. It never copies an object, just a reference, so that two references now point to the same object.

Similar Messages

  • How to add new object class to a material ?

    Hi experts,
    I have to add new object class to a material ( classification class ) and then add new characteristics values for the material ....But i do not know which FM to do this , If you please to give me the solution for this problem
    PS: rewards immediately
    Thanks,

    Hi,
    Check this  CALL FUNCTION 'CLVM_CLASS_BOOK' Run it for IN UPDATE TASK
    Reward if useful,

  • Cn=Users domain is not displaying after configuring new object class in OAM

    We have configured a custom object class which inherits inetorgperson objectclass and reconfigured OAM. After the reconfiguration cn=Users is not available in OAM Attibute Access Control Management domain selection,Delegated Administration domain selection , Workflow Definition -workflow domain selection and searchbase domain.
    If anyone has faced similar issue,please reply back.
    Thanks inadvance.
    Regards,
    Srikanth

    > I cannot RDP using the user
    Any error message?
    Greetings/Grüße,
    Martin
    Mal ein
    gutes Buch über GPOs lesen?
    Good or bad GPOs? - my blog…
    And if IT bothers me -
    coke bottle design refreshment (-:

  • Re: Add new object class

    Dear all,
    I have created my own object class which inherited from objectclass "person" and I assign it to every user in a subtree. After then, I found that the option "edit with custom Editor" is grayed out! Why is it? How can I enable the option?
    Thanks!
    Joe

    Hi,
    Check this  CALL FUNCTION 'CLVM_CLASS_BOOK' Run it for IN UPDATE TASK
    Reward if useful,

  • How to create custom attributes & object classes through ldif files in OID

    Hi,
    I have to create 4 attributes and one object class(custom) in OID. I want to creae these attributes and object class through LDIF file.
    I tried creating an attribute through this command
    ldapadd -p 389 -h localhost -D cn=orcladmin -w password -f D:/newattr.ldif
    this ldif file contains inf. for creating a new attributes:
    dn: cn=subschemasubentry
    changetype: add
    add: attributetypes
    attributetypes: ( 1.2.3.4.5.6.10 NAME "xsUserType_new" DESC "User Type Definition" EQUALITY caseIgnoreMatch
    SYNTAX "1.3.6.1.4.1.1466.115.121.1.15" )
    I am getting error: Object class violation
    Failed to find add in mandatory or optional attribute list.
    Please help to find where I am going wrong...
    Thanks.

    Hi Ajay,
    Thank you for the help. Now i am able to create both attributes and object classes in OID through Ldif files.
    I was getting constraint violation error because (I think) I was not giving proper naming convection for attributes and object classes. For OID, there are certain Ldap naming conventions. They are as follows:
    # X below is the enterprise number assigned by IANA
    1.3.6.1.4.1.X.1 - assign to SNMP objects
    1.3.6.1.4.1.X.2 - assign to LDAP objects
    1.3.6.1.4.1.X.2.1 - assign to LDAP syntaxes
    1.3.6.1.4.1.X.2.2 - assign to LDAP matchingrules
    1.3.6.1.4.1.X.2.3 - assign to LDAP attributes
    1.3.6.1.4.1.X.2.4 - assign to LDAP objectclasses
    1.3.6.1.4.1.X.2.5 - assign to LDAP supported features
    1.3.6.1.4.1.X.2.9 - assign to LDAP protocol mechanisms
    1.3.6.1.4.1.X.2.10 - assign to LDAP controls
    1.3.6.1.4.1.X.2.11 - assign to LDAP extended operations
    By using these conventions for attributes and object class, I did got any error and they were created in OID.
    Thanks a zillion.
    Kalpana.

  • XMLDecoder , unbound =Class.new(ArrayList, AttributeMap, ConnectionSet);

    hello all i am trying to load an old files of my application
    the files was written ,read using XMLDecoder ,XMLEncoder
    trying to support the old version ,but i am getting some errors
    i can only imagine , that some required classes are not suitable since the version change
    but how can i know exactly witch class and witch method ?
    this is the loading code
    ClassLoader cl = new JARClassLoader();
              ExceptionListener el = new ExceptionListener() {
                   public void exceptionThrown(Exception e) {
                        e.printStackTrace();
                        log.error("XMLDecoder error: " + mes + " -- " + e.getCause());
              XMLDecoder dec = new XMLDecoder(read, null, el, cl);
              Object obj = dec.readObject();///THIS LINE I GET THE ERRORthis is the error i am getting
    java.lang.NoSuchMethodException: <unbound>=Class.new(ArrayList, AttributeMap, ConnectionSet);
         at java.beans.Statement.invoke(Unknown Source)
         at java.beans.Expression.getValue(Unknown Source)
         at com.sun.beans.MutableExpression.getValue(Unknown Source)
         at com.sun.beans.ObjectHandler.getValue(Unknown Source)
         at com.sun.beans.ObjectHandler.endElement(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
         at javax.xml.parsers.SAXParser.parse(Unknown Source)
         at javax.xml.parsers.SAXParser.parse(Unknown Source)
         at java.beans.XMLDecoder.getHandler(Unknown Source)
         at java.beans.XMLDecoder.readObject(Unknown Source)
         at com.tenlevels.flowlevel.util.ver_1_2_0_load.LoadGraph.loadGraph1(LoadGraph.java:100)
         at com.tenlevels.flowlevel.util.ver_1_2_0_load.LoadGraph.loadGraph(LoadGraph.java:61)
         at com.tenlevels.flowlevel.action.OpenFlow.doAction(OpenFlow.java:86)
         at com.tenlevels.flowlevel.action.ActionRouter.performAction(ActionRouter.java:79)
         at com.tenlevels.flowlevel.action.ActionRouter.access$0(ActionRouter.java:70)
         at com.tenlevels.flowlevel.action.ActionRouter$1.run(ActionRouter.java:64)
         at java.awt.event.InvocationEvent.dispatch(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    java.lang.NullPointerException
         at org.jgraph.graph.AbstractCellView.getCellAttributes(Unknown Source)
         at org.jgraph.graph.AbstractCellView.refresh(Unknown Source)
         at org.jgraph.graph.GraphLayoutCache.refresh(Unknown Source)
         at org.jgraph.graph.GraphLayoutCache.refresh(Unknown Source)
         at org.jgraph.graph.GraphLayoutCache.insertViews(Unknown Source)
         at org.jgraph.graph.GraphLayoutCache.<init>(Unknown Source)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
         at java.lang.reflect.Constructor.newInstance(Unknown Source)
         at java.beans.Statement.invoke(Unknown Source)
         at java.beans.Expression.getValue(Unknown Source)
         at com.sun.beans.MutableExpression.getValue(Unknown Source)
         at com.sun.beans.ObjectHandler.getValue(Unknown Source)
         at com.sun.beans.ObjectHandler.eval(Unknown Source)
         at com.sun.beans.ObjectHandler.startElement(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
         at javax.xml.parsers.SAXParser.parse(Unknown Source)
         at javax.xml.parsers.SAXParser.parse(Unknown Source)
         at java.beans.XMLDecoder.getHandler(Unknown Source)
         at java.beans.XMLDecoder.readObject(Unknown Source)
         at com.tenlevels.flowlevel.util.ver_1_2_0_load.LoadGraph.loadGraph1(LoadGraph.java:100)
         at com.tenlevels.flowlevel.util.ver_1_2_0_load.LoadGraph.loadGraph(LoadGraph.java:61)
         at com.tenlevels.flowlevel.action.OpenFlow.doAction(OpenFlow.java:86)
         at com.tenlevels.flowlevel.action.ActionRouter.performAction(ActionRouter.java:79)
         at com.tenlevels.flowlevel.action.ActionRouter.access$0(ActionRouter.java:70)
         at com.tenlevels.flowlevel.action.ActionRouter$1.run(ActionRouter.java:64)
         at java.awt.event.InvocationEvent.dispatch(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    java.lang.NullPointerException: target should not be null
         at java.beans.Statement.invoke(Unknown Source)
         at java.beans.Expression.getValue(Unknown Source)
         at com.sun.beans.MutableExpression.getValue(Unknown Source)
         at com.sun.beans.ObjectHandler.getValue(Unknown Source)
         at com.sun.beans.ObjectHandler.eval(Unknown Source)
         at com.sun.beans.ObjectHandler.startElement(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
    ...thank you

    shay_te wrote:
    ClassLoader cl = new JARClassLoader();
              ExceptionListener el = new ExceptionListener() {
                   public void exceptionThrown(Exception e) {
                        e.printStackTrace();
                        log.error("XMLDecoder error: " + mes + " -- " + e.getCause());
              XMLDecoder dec = new XMLDecoder(read, null, el, cl);
              Object obj = dec.readObject();///THIS LINE I GET THE ERROR
    I'd have to start out by saying: look in the API under object. readObject() is not an implemented method. Do you have an extension of Object that contains readObject()?

  • Error: initialization error: file java\lang\Object.class not found

    when the error listed my classpath's its not the same list that is in my Windows XP environment variable list?
    I am on 9.0.3
    I am assuming I have to set some varible to my new jdk\bin directory. I reinstalled it. I have set it to use jdk 1.4 using the ojvm tool a while back.

    Please help!!
    I did change the jdev.conf file setting:
    SetJavaHome /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home
    and I still get this error:
    initiallization erro: file java/lang/Object.class not found in classpath
    I am usgin Oracle JDeveloper 10g 10.1.2 on a Mac OS X Tiger
    Could someone please help?
    thanks a bunch!!!

  • How to use Object Class:orclDbServer in OID

    Not sure if i have posted in the correct forum, I am quite new to OID
    I am planning to use orclDbServer Object Class, but not sure how to use, i have searched in Google, and Oracle Documentation, there are so little information about this, there are only:
    Object Class: orclDbServer
    Description: Defines the attributes for database service entries
    Attributes: orclNetDescName, orclVersion
    Below is the ldif file i created for add one entry with object class orclDBServer:
    dn: cn=orclDBServer_test, cn=OracleContext, dc=ldapcdc, dc=lcom
    changetype: add
    objectclass: top
    objectclass: orclDBServer
    cn: orclDBServer_test
    orclNetDescName: (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST=10.182.114.121)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = oh112)))
    after i use below command to add this entry:
    ldapadd -h localhost -p 389 -D "cn=orcladmin" -w welcome1 -f test_add.ldif
    then use ldapsearch to search:
    ldapsearch -h localhost -p 389 -b "dc=lcom" "objectclass=orclDBServer"
    the result is like below:
    cn=orclDBServer_test, cn=OracleContext, dc=ldapcdc, dc=lcom
    cn=orclDBServer_test
    orclnetdescname=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST=10.182.114.121)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = oh112)))
    objectclass=top
    objectclass=orclDBServer
    objectclass=orclService
    It seems it added a line for me:
    objectclass=orclService
    Is there anything wrong with my ldif file when i want to use orclDbServer?
    Edited by: ening on Jan 5, 2010 9:31 PM

    Hi,
    if you are having main controller and sub-controller then you may need to use below coding to use application class reference.
    *Data declaration
      DATA:  obj_cntrl        TYPE REF TO cl_bsp_controller2,
             obj_sub_cntrl   TYPE REF TO z_cl_sub_cntl,
             application TYPE REF TO z_cl_application.
    *Get the controller
      CALL METHOD obj_main_cntrl->get_controller   "obj_main_cntrl is the object of main controller
        EXPORTING
          controller_id       = 'SUB'   "Controller ID
        RECEIVING
          controller_instance = obj_cntrl  .
      obj_sub_cntrl ?= obj_cntrl  .
      application ?= obj_sub_cntrl ->application.
    or simply use below code in your controller method.
      application ?= me->application.
    Thnaks,
    Chandra

  • How to make Object class to be serializable?

    I'm writing a session bean which contains an Object[][] as a return e.g
    public Object[][] getFoo(){
    I need the return to be of type Object since I'm constracting a 2D array of different object types e.g Integer, Double, HashMap, String etc. But EJBs require serializable objects for their public remote methods. Could you please advice me whether there is another class that I could use instead of the Object class to be serializable? I'm still using SDK1.3.1.
    Thank you

    I've already tried that before, but it doesn't work. When I try to assign different objects to my array as in the following example:
    ABC[][] abc = new ABC[4][2];
    abc[0][0] = new Integer(1);
    abc[0][1] = new String("abc");
    abc[0][2] = new HashMap();
    I'm getting compilation error since Integer, String and HashMap can not be casted into ABC. My question is whether there is such a class (part of the SDK) which implements Serializable AND these classes can be casted to, as in the above example?

  • How can i add an custom attribute and assign it to an existing custom object class in sun ds

    I need to add an attribute to sun ds schema and assign it to an existing custom object class.
    I know how to add an attribute but how can i add the attribute to an existing custom object class.
    Please help.
    Thanks

    The objectclasses attribute is multi-valued, so you can add several values to it as long as they are unique.
    For instance, I think you can add several declaration of the same objectclass as below (note the difference is the number of spaces in the value) howewer, from a schema perspective, only 1 will be taken into account:
    objectclasses: ( 2.5.6.6 NAME 'person' DESC 'Standard LDAP objectclass' SUP top MUST ( sn $ cn ) MAY ( description $ seeAlso $ telephoneNumber $ userPassword $ CustomAttr) X-ORIGIN 'RFC 2256' )
    objectclasses: ( 2.5.6.6 NAME   'person' DESC 'Standard LDAP objectclass' SUP top MUST ( sn $ cn ) MAY ( description $ seeAlso $ telephoneNumber $ userPassword $ CustomAttr) X-ORIGIN 'RFC 2256    ' )
    That's the reason why it is safe to delete previous value if you want to update an existing objectclass. No problem to add a new objectclass (new oid and new name) to the schema.
    -Sylvain

  • Using predefined data objects classes.

    I am always trying to be a better, more efficient Flex developer and I was looking at a project by Christophe Coenraets where he created collaberative forms using Flex/BlazeDS. I saw in his application that he was using multidirectional binding to a Class Object for each form in the application. For example, this is the MortgageApplication.as
    package
        import mx.collections.ArrayCollection;
        [Bindable]
        public class MortgageApplication
            public var firstName:String;
            public var lastName:String;
            public var ssn:String;
            public var phone:String;
            public var mobilePhone:String;
            public var email:String;
            public var notify:Boolean;
            public var usCitizen:Boolean;
            public var address:String
            public var city:String
            public var state:String
            public var zip:String
            public var singleFamily:Boolean;
            public var salePrice:Number = 500000;
            public var downPayment:Number = 100000;
            public var closingDate:Date;
            public var jobList:ArrayCollection = new ArrayCollection();
    I have an application that I use multiple forms to input information into the database and then I use Objects (actually ObjectProxys) and ArrayCollections to store information to display. I use the Mate Framework and have manager classes that store predefined bindable variables (empty)  that are injected into the view as needed or requested. In the manager class I just create a new ObjectProxy (or ArrayCollection) and use the information passed in (an ArrayCollection from ColdFusion) and create/modify the ObjectProxy/ArrayCollection before having it injected.
    Is it better practice or more efficent to predefine object classes (such as above from the example) then just populate them in the manager class before the injection or just create an new blank Object or ArrayCollection on the fly. Is there any difference?
    Set up a seperate Class:
    package
        [Bindable]
        public class Person
            public var firstName:String;
            public var lastName:String;
            public var phone:String;
    and do this in the Manager:
    public function setPerson():void {
         var person = new Person();
         person.firstName = "Steve";
         person.lastName = "Smith";
         person.phone = "555.555.1212";
    OR just have this declaired in the Manager as
    [Bindable] public var person:ObjectProxy;
    public function setPerson():void {
         person = new ObjectProxy();
         person.firstName = "Steve";
         person.lastName = "Smith";
         person.phone = "555.555.1212";
    Thanks to anyone who wants to help me become a better developer!

    ObjectProxy access is significantly slower that data class access.  ObjectProxy will not tell you if you mistype the name of a property and you can spend hours trying to find some place were you typed ssm insead of ssn.

  • How to create an object class programmatically?

    Guys,
    I need your help. If possible with a simple example of how to do it.
    I need to create an aplication that read an specification of a repository type from a file and then creates it inside my BEA Repository. The problem are few:
    1 - How to Create an Object Class programmaticaly?
    I looked at documentation of ObjectClassOps but havent figured out how to do it.
    2 - How to Create a Property Definition programmaticaly?

    Sorry, ITypeManager only exists in 9.2. If you are working on 8.1, then the previous example becomes:
    RepositoryManager repositoryMgr = RepositoryManagerFactory.create();
    //connect to the repository
    repositoryMgr.connect();
    //get ObjectClassOps
    ObjectClassOps ocops = repositoryMgr.getObjectClassOps();
    ID repId = new ID();
    repId.setRepositoryName(repositoryName);
    PropertyDefinition[] pds = new PropertyDefinition[1];
    pds[0] = new PropertyDefinition(repId, "stringProp", null, Property.STRING, false, false, false, false, false, null);
    ObjectClass oc = new ObjectClass(repId, "myType", null, pds);
    oc = ocops.createObjectClass(oc);

  • Sorting a vector of objects using attribute of object class as comparator

    i would like to sort a vector of objects using an attribute of object class as comparator. let me explain, i'm not sure to be clear.
    class MyObject{
    String name;
    int value1;
    int value2;
    int value3;
    i've got a Vector made of MyObject objects, and i would sort it, for instance, into ascending numerical order of the value1 attribute. Could someone help me please?
    KINSKI.

    Vector does not implement a sorted collection, so you can't use a Comparator. Why don't you use a TreeSet? Then you couldclass MyObject
      String name;
      int value1;
      int value2;
      int value3;
      // Override equals() in this class to match what our comparator does
      boolean equals (Object cand)
        // Verify comparability; this will also allow subclasses.
        if (cand !instanceof MyObject)
          throw new ClassCastException();
        return value1 = cand.value1;
      // Provide the comparator for this class. Make it static; instance not required
      static Comparator getComparator ()
        // Return this class's comparator
        return new MyClassComparator();
      // Define a comparator for this class
      private static class MyClassComparator implements Comparator
        compare (Object cand1, Object cand2)
          // Verify comparability; this will also allow subclasses.
          if ((cand1 !instanceof MyObject) || (cand2 !instanceof MyObject))
            throw new ClassCastException();
          // Compare. Less-than return -1
          if ((MyObject) cand1.value1 < (MyObject) cand2.value1))
            return -1;
          // Greater-than return 1
          else if ((MyObject) cand1.value1 > (MyObject) cand2.value1))
            return 1;
          // Equal-to return 0.
          else
            return 0;
    }then just pass MyObject.getComparator() (you don't need to create an instance) when you create the TreeSet.

  • How to typecast Object Class object dynamically

    Hai every one
    i have a object of any particular class , but i don't know the variables in that class object. But i have string variable contains value of variables in that class object.
    So i use following method for get value of variables in that class object.
    class ObjectCLass
         Sub s=new Sub();
         public static void main(String[] args)
              ObjectCLass a=new ObjectCLass();
              try
                   System.out.println(*a.getClass().getDeclaredField("s").get(a)*);
              catch(Exception e)
                   System.out.println("Exception");
    class Sub
         int i=5;
         public void print()
              System.out.println("Hello World!");
    }Here the bolder line give Object class object. By using this Object class object i need access the variable i and method print(). So i need to cast Object class object into sub class
    so how can i typecast it
    i try with following methods , but i cant succeed
    1.(  *(a.getClass().getDeclaredField("s").get(a).getClass)*   a.getClass().getDeclaredField("s").get(a)   ).print() ;
    2.(  (Class.forName(�Sub�) ) a.getClass().getDeclaredField("s").get(a) ).print();Please any one one help me how to typecast it dynamically
    By
    Thiagu

    If you know you're going to invoke the "print" method on an object, then you also need to know the type of the class, or interface, which has that method.
    It seems what you are looking for is a tutorial on interfaces.
    http://java.sun.com/docs/books/tutorial/java/IandI/index.html
    In a nutshell, you can set up an interface which defines a "print" method, and create class(es) which implement that interface. Then as long as you have an object which implements that interface, but do not know the exact type of that object, you can simply cast it to the interface type and invoke the method.

  • Thread Methods but in Object class, y?

    Why wait, notify, notifyall methods are in object class instead of Thread class?

    thechad wrote:
    It's not clear to me why. Probably it's a historical artefact .. once it was in Object, it's hard to take it out.
    You're question is a fair question it seems to me. Maybe someone will tell you there's a good reason.Yes, there is a very good reason and it's not a historical artifact.
    wait / notify are used for locking in java. For instance, imagine you have a job queue, and you've got a whole bunch of worker threads that are getting jobs from it. What happens when the queue is empty and there are no more jobs? You want to wait for the queue to have more jobs. Then when a new job comes in, you want to notify any thread waiting that it can now proceed.
    In fact, with reference to why isn't this just handled in thread, it is dangerous and wrong to call wait, notify or notifyall on a Thread object... Thread.join calls wait on the thread and thread death calls notifyAll, but API docs don't guarentee this so you should avoid these methods in a Thread object.

  • How do interfaces have methods of Object class

    Hi All,
    Please consider the following code snippet.
    public interface EmployeeService
        public void createEmployee(Employee emp);
        public Employee findEmployee(String empId);
    public class EmployeeServiceImpl implements EmployeeService
        public void createEmployee(Employee emp) { ................. }
        public Employee findEmployee(String empId) { ................. }
    }The above is a simple example where I have an employee object with two service methods to create and find an employee.
    Now the consider the following
    EmployeeService empService = new EmployeeServiceImpl();
    Employee emp = empService.findEmployee("1").So the above code helps me in finding an employee.
    Now, we know that you can only call those methods that are defined in the interface.
    My question is, if I use the empService you would be able to access the methods of the Object class (equals, hashCode, wait etc.)
    How does this happen? In the Jave API we know all class by default override the Object class, so how does it work with interfaces?
    Thanks in advance for the reply

    [JLS 6.4.4 The Members of an Interface Type|http://java.sun.com/docs/books/jls/third_edition/html/names.html#6.4.4] says:
    If an interface has no direct superinterfaces, then the interface implicitly declares a public abstract member method m with signature s, return type r, and throws clause t corresponding to each public instance method m with signature s, return type r, and throws clause t declared in Object, unless a method with the same signature, same return type, and a compatible throws clause is explicitly declared by the interface. It is a compile-time error if the interface explicitly declares such a method m in the case where m is declared to be final in Object.
    So, in short, those methods exist in interfaces because the JLS says they do.

Maybe you are looking for