The 'this' object in class methods

The book I'm reading says that the 'this' object needs to be initialized in every class method. Does it have to be explicitly initialized or can it be implicit? and if it can be implicit, how would you do that?(code wise)

Actually, I think it is correct to say that 'this' needs to be initialized. In a constructor, you cannot make a reference to the 'this' reference until the super constructor gets called. If you do not explicitly call the super constructor, then a call to the no argument super constructor gets inserted. If there isn't a no argument super constructor, then you must either make a call to one of the super constructors that is defined, or make a call to another constructor in that class. Until after that point, the 'this' reference is not valid.

Similar Messages

  • How to recognize the name of invoked classes&methods&fields in a class

    I am now doing some programming used to recognize the name of all classes, methods, constructors and fields invoked from other classes in a given class. This recognition is required automatical. Now I really have no idea how to realize it. Can anyone please give me some suggestions how to programme it?
    Now I show you a specific example to make sure you understand my question.
    From the following example, firstly I've no idea what outer classes, methods and fields are used in class "PointShadowProtocol". However, the expected functionality of realization is to find out: 1, the name of two used outer classes: Shadow, Point; 2, invoked constructor: Shadow s=new Shadow(int x,int y); 3, invoked methods: Point.getX(), Point.getY(), Point.printPosition(),Shadow.offset,Shadow.printPosition(); and 4, invoked field: Point.x,Point.y,Shadow.x,Shadow.y
    public class PointShadowProtocol{
    private int shadowCount=0;
    public static Shadow getShadow(Point p){
    Shadow s=new Shadow(p.x,p.y);
    return s;
    public void setting(Point p){
    Shadow s=new Shadow(p.x,p.y);
    shadowCount++;
    public void settingX(Point p){
    Shadow s=getShadow(p);
    s.x=p.getX()+Shadow.offset;
    p.printPosition();
    s.printPosition();
    public void settingY(Point p){
    Shadow s=getShadow(p);
    s.y=p.getY()+Shadow.offset;
    p.printPosition();
    s.printPosition();
    Actually, after realizing this functionality, I will use these results to automatically generate the related class stub, method stub, field stub, which can be used to test the given class "PointShadowProtocol", probably equivalent to unit test.
    Any suggestions are welcome. Thank you in advance for your reply.

    Using BCEL sounds a good idea for a class in Java. Actually, I want to target an aspect, which is from AspectJ, without knowing any invoked classes, class methods and fields inside an aspect in the first place (examples of an aspect is as showed below). An aspect in AspectJ is just like a class in Java. But an aspect can't be compiled if the invoked outer classes and methods don't exist. (In fact, the weaving of an aspect into classes happens in the compile time, an aspect can't be compiled if the woven classes (or invoked classes) don't exist, which means I have to find out the all the invoked classes, class methods and fields in that aspect before the compile time) So BCEL could not apply into an aspect in AspectJ.
    I am sorry to introduce new concepts here. However,the solution to find out all the invoked outer classes, class methods and fields in a given class before the compile time can be applied to an aspect as well.
    Thank you for your time to think about my question.
    public aspect PointShadowProtocolAspect {
         private int shadowCount=0;
         public static Shadow getShadow(Point p){
              Shadow s=new Shadow(p.x,p.y);
              return s;
         pointcut setting(Point p): target(p)&&call(Point.new(int,int));
         pointcut settingX(Point p):target(p)&&call(void Point.setX(int));
         pointcut settingY(Point p):target(p)&&call(void Point.setY(int));
         after(Point p): setting(p){
              Shadow s=new Shadow(p.x,p.y);
              shadowCount++;
         after(Point p):settingX(p){
              Shadow s=getShadow(p);
              s.x=p.getX()+Shadow.offset;
              p.printPosition();
              s.printPosition();
         after(Point p):settingY(p){
              Shadow s=getShadow(p);
              s.y=p.getY()+Shadow.offset;
              p.printPosition();
              s.printPosition();

  • Whats the difference between a class method and a instance method.

    I have a quiz pretty soon and one of the questions will be: "How does an instance method differ from a class method." I've tried looking this up but they gave me really complicated explanations. I know what a instance method is but not really sure what a class one is. Can someone post an example of a class method and try to explain what makes it so special?
    Edited by: tetris on Jan 30, 2008 10:45 PM

    Just have a look:
    http://forum.java.sun.com/thread.jspa?threadID=603042&messageID=3246191

  • How to read the source code of class method

    Hi,
    I want to read the source code of a method which is in a BAdi implementation.
    I used SEO_METHOD_GET_SOURCE function module where I passed interface name as class and method name.
    But I didn't get the source code. Is there any other function module of method to read the source code.
    Thanks and regards,
    Venkat.

    Hi Venkat,
      You can still use the Function Module SEO_METHOD_GET_SOURCE with a small change in the parameter passing. It should be:
    Paramaters:
    MTDKEY-CLSNAME : <Implementaion Classname>
    MTDKEY-CPDNAME: <Interfacename~methodname>
    STATE : 'A' for active or 'I' for inactive
    For example:
    MTDKEY-CLSNAME :ZCL_IM_PLM_AUDIT_ALV_GRID
    MTDKEY-CPDNAME: IF_EX_PLM_AUDIT_ALV_GRID~ON_USER_COMMAND
    STATE: A
    After executing you will get the source code in the form of string in the 'SOURCE' parameter.
    Hope this helps you.
    Regards,
    Swarna Munukoti

  • Static Classes/Methods vs Objects/Instance Classes/Methods?

    Hi,
    I am reading "Official ABAP Programming Guidelines" book. And I saw the rule:
    Rule 5.3: Do Not Use Static Classes
    Preferably use objects instead of static classes. If you don't want to have a multiple instantiation, you can use singletons.
    I needed to create a global class and some methods under that. And there is no any object-oriented design idea exists. Instead of creating a function group/modules, I have decided to create a global class (even is a abstract class) and some static methods.So I directly use these static methods by using zcl_class=>method().
    But the rule above says "Don't use static classes/methods, always use instance methods if even there is no object-oriented design".
    The book listed several reasons, one for example
    1-) Static classes are implicitly loaded first time they are used, and the corresponding static constructor -of available- is executed. They remain in the memory as long as the current internal session exists. Therefore, if you use static classes, you cannot actually control the time of initialization and have no option to release the memory.
    So if I use a static class/method in a subroutine, it will be loaded into memory and it will stay in the memory till I close the program.
    But if I use instance class/method, I can CREATE OBJECT lo_object TYPE REF TO zcl_class then use method lo_object->method(), then I can FREE  lo_object to delete from the memory. Is my understanding correct?
    Any idea? What do you prefer Static Class OR Object/Instance Class?
    Thanks in advance.
    Tuncay

    @Naimesh Patel
    So you recommend to use instance class/methods even though method logic is just self-executable. Right?
    <h3>Example:</h3>
    <h4>Instance option</h4>
    CLASS zcl_class DEFINITION.
      METHODS add_1 IMPORTING i_input type i EXPORTING e_output type i.
      METHODS subtract_1 IMPORTING i_input type i EXPORTING e_output type i.
    ENDCLASS
    CLASS zcl_class IMPLEMENTATION.
      METHOD add_1.
        e_output = i_input + 1.
      ENDMETHOD.
      METHOD subtract_1.
        e_output = i_input - 1.
      ENDMETHOD.
    ENDCLASS
    CREATE OBJECT lo_object.
    lo_object->add_1(
      exporting i_input = 1
      importing e_output = lv_output ).
    lo_object->subtract_1(
      exporting i_input = 2
      importing e_output = lv_output2 ).
    <h4>Static option</h4>
    CLASS zcl_class DEFINITION.
      CLASS-METHODS add_1 IMPORTING i_input type i EXPORTING e_output type i.
      CLASS-METHODS subtract_1 IMPORTING i_input type i EXPORTING e_output type i.
    ENDCLASS
    CLASS zcl_class IMPLEMENTATION.
      METHOD add_1.
        e_output = i_input + 1.
      ENDMETHOD.
      METHOD subtract_1.
        e_output = i_input - 1.
      ENDMETHOD.
    ENDCLASS
    CREATE OBJECT lo_object.
    lo_object->add_1(
    zcl_class=>add_1(
      exporting i_input = 1
      importing e_output = lv_output ).
    lo_object->subtract_1(
    zcl_class=>subtract_1(
      exporting i_input = 2
      importing e_output = lv_output2 ).
    So which option is best? Pros and Cons?

  • Dynamic parallel processing of the same object using asynchronous method

    Hi,
    Please can anyone help me?
    I have to send the same DMS document to several agents for parallel processing. The number of agents is not known until runtime. Each of them should process the document and at least change the status of it. In next step I check if he has changed it.
    I use dynamic parallel processing of subworkflows. Key task of this subworkflow uses standard method of object DRAW - DOCUMENT.EDIT  (standard transaction CV02N) which is asynchronous. The task is finished by event DOCUMENT.CHANGED. 
    During the parallel processing the appropriate number of workitems is generated. However, when the agent who processes the document as first completes his workitem the event DOCUMENT.CHANGED is generated and all parallel workitems are completed, even those of other agents that were not processed yet.
    Any help would be appreciated.
    Thanks.
    Eva Vahalova

    Hi all,
    The process is used to approve incoming invoices. Each scanned invoice is attached to a DMS document and than sent to one or several agents in parallel. People from several departments can approve the same invoice for instance energy or mobile phone costs. We have no HR module fully implemented. Each agent may write some remarks and has to sets the document status to either approved or rejected. This status is temporary therefore the others see the original status for approving.
    The process of incoming invoices was implemented by SAP consultants in 2003 on 4.6B and now runs on our 4.7 system.  Now new company was established running on a new SAP system ECC 6.0 and our accountant department and some agents will deal with invoices in both systems. Therefore, the process should appear the same or at least very similar. The majority of the old process was realized by programming while I would like to use workflow features that are available now and reduce the programming part.
    As I see, I will have to choose one of the solutions that Arghadip suggested.
    I wonder if there is a possibility to use asynchronous method and control the end of each work item by means of u201CComplete Work Itemu201D or u201CComplete executionu201D Conditions. I have never used them and I do not know how they work and what condition to use. Maybe program exit might be used as well. While controlling the agents I think I will have to do some programming anyway because the work item can be finished by a substitute too.
    Thanks for your help.
    Eva

  • How do I recover the actual type of the this object in a class hierarchy?

    Hi,
    This is code snippet from Angelica Langer's FAQ:
    abstract class Node <N extends Node<N>>  {
         private final List<N> children = new ArrayList<N>();
       private final N parent;
       protected Node(N parent) {
            this.parent = parent;
            if(parent!=null)
               parent.children.add(this);  // error: incompatible types
       public N getParent() {
         return parent;
       public List<N> getChildren() {
         return children;
    }There are 3 different approaches available in the FAQ to solve this problem.
    My question is:
    If I write:
    parent.children.add((N)this);  // cast added here
    ...as described at the end of this topic in the FAQ, am I safe here (despite
    the compilers warning) ? In my opinion, although I understand that
    compiler needs to issue a warning, it is actually 100% safe .... or is it not ?
    Or let's ask more precise question: can it throw a ClassCastException at
    runtime ever ? If so, can you give any example ?
    Thanks,
    Adrian

    You might not get a CCE within the Node class (because of erasure), but maybe on accessing the children, e.g., in a loop, where the cast will be created by the compiler, based on the type information you give to it.
    class A extends Node<A> {
      public A(A parent) { super(parent); }
    class B extends Node<A> {
      public B(A parent) { super(parent); } // This will add a B as child to an A!
    A a = ...;
    B b = new B(a);
    for (A anA : b.getChildren()) { ... }Creating an instance of B will add it as child to a List<A>, which will most probably result in a CCE when looping on the list like shown above, which is type-safe from the compiler point of view.

  • Getting the calling object reference / class?

    Dear forum members,
    Is it possible for A in the below example to get that B was the "caller"?
    class A {
      A() {
      public void someMethod(String text) {
        System.out.println("I was called with: " + text);
        System.out.println("I was called by: " + thatMagicWayToGetCallerClassOrReference());
    class B {
      public static void main(String[] args) {
        A a = new A();
        a.someMethod("HOLA HOLA");
    }

    Another way of getting the class of your caller is to use a SecurityManager object. getClassContext() is protected but you can get at it by subclassing SecurityManager (it works if you just instanciate the manager without installing it). This gives you a reference to the Class object itself where the stack trace returns only the class name. Bear in mind that the class in question will be several items up the array, the first entry is the SecurityManager itself, the second the called class.
    However, I agree with others it doesn't sound like the best design. If you're having trouble with not being able to change the interface specifications to pass the extra information then consider using a static reference, if necessary a ThreadLocal. What happens if you want to call the offending method indirectly through some central method at some future time? You've lost the call origin data.
    Why can't you simply add a parameter to the offending call?

  • Two Threads Sharing the Same Object

    I am learning Java multithreading recently and I really hit the wall when I came to synchronizing data using the synchronized keyword. According to the explanation, synchronized will only work when 2 or more threads are accessing the same object. If there are accessing 2 different objects, they can run the synchronized method in parallel.
    My question now is how to make sure for synchronized method to work, I am actually working with the same and only one object??
    Imagine this:
    Two person with the same account number are trying to access the very ONE account at the same time.
    I suppose the logic will be:
    Two different socket objects will be created. When it comes to the login or authentication class or method, how can I make sure in term of object that the login/authentication class or method will return them only ONE object (because they share the same account), so that they will be qualified for using the synchronized method further down the road?
    Thanks in advance!

    Actually your understanding is wrong. Consider:
    public class MyClass {
      private int someInt;
      private float someFloat;
      private synchronized void someMethod(final int value) {
        if (value > 2000) someInt = 2000;
      private synchronized void someOtherMethod(final float value) {
        if (value > 2.0) someFloat = 1.999f;
    }YOu might think that two different threads can enter this code, one can enter in someOtherMethod() while one is in someMethod(). That is wrong. The fact is that synchronization works by obtaining synchronization locks on a target object. In this case by putting it on the method declaration you are asking for the lock on the 'this' object. This means that only one of these methods may enter at a time. This code would be better written like so ...
    public class MyClass {
      private int someInt;
      private float someFloat;
      private void someMethod(final int value) {�
        synchronized(someInt) {
          if (value > 2000) someInt = 2000;
      private void someOtherMethod(final float value) {
        synchronized(someFloat) {
          if (value > 2.0) someFloat = 1.999f;
    }In this manner you are only locking on the pertinent objects to the method and not on 'this'. This means that both methods can be entered simultaneously by two different threads. However watch out for one little problem.
    public class MyClass {
      private int someInt;
      private float someFloat;
      private void someMethod(final int value) {�
        synchronized(someInt) {
          if (value > 2000) {
            someInt = 2000;
            synchronized (someFloat) {
              someFloat = 0.0f;
      private void someOtherMethod(final float value) {
        synchronized(someFloat) {
          if (value > 2.0) {
            someFloat = 1.99999f;
            synchronized (someInt) {
              someInt = 0;
    }In this case you can have a deadlock. If two threads enter one of these methods at the same time one would be waiting on the lock for someInt and the other on the lock for someFloat. Neither would proceed. The solution to the problem is simple. Acquire all locks in alphabetical order before you use the first.
    public class MyClass {
      private int someInt;
      private float someFloat;
      private void someMethod(final int value) {�
        synchronized (someFloat) {
          synchronized(someInt) {
            if (value > 2000) {
              someInt = 2000;
              someFloat = 0.0f;
      private void someOtherMethod(final float value) {
        synchronized(someFloat) {
          if (value > 2.0) {
            someFloat = 1.99999f;
            synchronized (someInt) {
              someInt = 0;
    }In this manner one thread will block waiting on someFloat and there can be no deadlock.

  • Can't navigate to a page when using a class method

    I am working on windows phone 8.1 universal app where I have created a class method and placed it in the NavigationHelper_LoadState method of one of the  pages in my app. My navigation is as follows, I click on a link on my Mainpage and that takes me
    to the page in question,  where I have placed the class method in LoadState.
    The class method checks the authentication state of the user. If the user is not logged in, it is supposed to take him to a separate login page (SHDSignIn from the snippet below).
    The problem I am running into is that when I hit that part of the code in my class method, it just steps through the redirect code but doesn't take me to the login page but rather takes me to the  page that was clicked from mainpage.
    From the troubleshooting I have done up to this point seems like an issue probably because I am calling the method from NavigationHelper_LoadState and the system doesn't like it?? Can someone please explain and also provide a workaround for this?
    Here is my code for the class function:
    public async void SHDAuthState(string errormessage, ProgressBar myprogressbar, TextBlock mytextblock, TextBlock myservernetworkerror)
    //Get the values for the userID and password from the settings....
    string shdLoggedInValue = (string)appRoamingSettings.Values["shdLoggedIn"];
    //If not logged in, redirect to the SHD sign in page...
    if (shdLoggedInValue != "Yes")
    this.rootFrame.Navigate(typeof(SHDSignIn));
    //Getting the cookie if it has expired..
    else
    //Get the cookie value...
    string myCookieValue = (string)appRoamingSettings.Values["MyCookie"];
    //Get the original cookie obtain time....
    long CookieObtainedTimeValue = (long)appRoamingSettings.Values["CookieObtainedTime"];
    //Convertig date/time back to DateTime object....
    origCookieObtainedTime = DateTime.FromBinary(CookieObtainedTimeValue);
    currentDateTime = DateTime.Now;
    //Check to see if cookie has expired....
    cookieTimeElasped = currentDateTime - origCookieObtainedTime;
    cookieTimeElapsedMins = cookieTimeElasped.TotalMinutes;
    // 2 days = 2880 mins but we give a margin of 1 minute
    //Get a new cookie if it has expired and save to settings
    if (cookieTimeElapsedMins >= 2879)
    // Start showing the progress bar...
    mycontrols.progressbarShow(myprogressbar, mytextblock);
    //Get the values for the userID and password from the settings....
    string UserIDValue = (string)appRoamingSettings.Values["UserID"];
    string PasswordValue = (string)appRoamingSettings.Values["Password"];
    //Update the requestData string before sending.....
    requestData = "{" + string.Format(RegisterRequestData, UserIDValue, PasswordValue) + "}";
    string registerResults = await SHDAPI(registerUrl, requestData, errormessage);
    if (registerResults != null)
    // Get the cookie and the time and save it to settings
    var shdCookie = JsonConvert.DeserializeObject<SHDHelper.SHDObject>(registerResults).RegistrationCookie;
    //Save cookie to the app settings
    appRoamingSettings.Values["MyCookie"] = shdCookie;
    // build the UI
    // Stop showing the progress bar...
    mycontrols.progressbarNoShow(myprogressbar, mytextblock);
    else
    // Stop showing the progress bar...
    mycontrols.progressbarNoShow(myprogressbar, mytextblock);
    //Show the error message...
    myservernetworkerror.Visibility = Windows.UI.Xaml.Visibility.Visible;
    Also, I have the rootFrame defined as follows in my class:
    Frame rootFrame = Window.Current.Content as Frame;
    I am calling the class method from the LoadState method as follows
    SHD_helper.SHDAuthState(errorMessage, pgbar, pgText, ServerNetworkError);
    thanks
    mujno

    that is correct.  I wanted to keep the login page redirect inside my class method so that I could do the check every time someone came to pages that require authentication. I wanted it in the LoadState method so I can do a check there, redirect
    them to login page or just get a cookie and then pass that cookie to page to build the UI for the page
    I can do what you are suggesting and have actually tried it but then I have to track which page to take the user to after they log in...
    I have multiple clicks in the appbar  and pages from where the user can come to these authentication-bound pages..
    Suggestions?
    Also, what am I doing wrong in my class method that it doesn't navigate to the login page in the LoadState method?
    Thanks 
    mujno

  • How to use an object's paint method

    I have created a class imagePanel which extends a jPanel to display an image. When I create a new imagePanel object I pass it an image argument which is used to paint my image on the jPanel, so far so good. I don't wish to have to continuously create new ImamePanels to display new images so I thought I could make a set_Image method that would set a new image in an exising imagePanel object. This is where I run into problems how to use the existing object paint method to replace the image. I tried this without success:
    public Image setMyImage (Image myImage)
    imageX = myImage; // imageX is the image that is painted by the imagePanel object's paint method
    paint(g);
    Something must be wrong on how I access the paint method. Thanks for any help.
    Jack

    Yahoooo, got it. This was the code I needed and thanks for your help:
    public void setImage (Image myImage)
    imageX = myImage;
    repaint(300);
    }

  • View parameters in a class Method

    Hi,
       Pl tell me wht is the best way one can view parameters of a Method in a class.
    Regards,
    Rushikesh

    Have a look at the below material for Class & Methods..
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.geocities.com/victorav15/sapr3/abap_ood.html
    http://www.brabandt.de/html/abap_oo.html
    http://www.sapgenie.com/abap/OO/
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
    http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    http://www.allsaplinks.com/
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.sapgenie.com/abap/controls/index.htm
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    these links
    http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
    For funtion module to class
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
    for classes
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
    for methods
    http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
    for inheritance
    http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
    for interfaces
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
    For Materials:
    1) http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf -- Page no: 1291
    2) http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    3) http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    4) http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    5) http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
    6) http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
    7) http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
    8) http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
    1) http://www.erpgenie.com/sap/abap/OO/index.htm
    2) http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    <b>Check this cool weblog:</b>
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    /people/sap.user72/blog/2005/05/10/a-small-tip-for-the-beginners-in-oo-abap
    /people/ravikumar.allampallam/blog/2005/02/11/abap-oo-in-action
    /people/thomas.jung3/blog/2005/09/08/oo-abap-dynpro-programming
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b6254f411d194a60000e8353423/frameset.htm
    Raja T

  • Problem in getting the Date object based on the TimeZone

    Hi,
    I need to create a Date object that holds the time of the specified TimeZone.
    I am using TimeZone and Calendar object for that, but when I call the Calendar object's getTime() method, it returns
    a Date object that holds the local time.
    Can somebody let me know what why?
    Here is what I uses in my code.
    TimeZone tz = TimeZone.getTimeZone("IST");
    Calendar cal = new GregorianCalendar(tz);
    System.out.println("Date of "IST" TimeZone = " + cal.getTime());
    Instead of cal.getTime, if I do the following I am getting the values correctly.
    int month = cal.get(Calendar.MONTH); // 0..11
    int day = cal.get(Calendar.DATE); // 0..11
    int hour12 = cal.get(Calendar.HOUR); // 0..11
    int minutes = cal.get(Calendar.MINUTE); // 0..59
    Can somebody let me know why I am not able to assign the Date of the TimeZone specified.
    Is there anything wrong with the code?
    Seb

    Is there anything wrong with the code?No, only with your understanding of the Date class. From the API:
    The class Date represents a specific instant in time, with millisecond precision.
    The different time displayed for different TimeZones around the world are just that: a display format for the same instant in time.
    To display the "instant in time" in a different TimeZone, use DateFormat. Here's a small sample:TimeZone tz = TimeZone.getTimeZone ("GMT");
    Calendar c = Calendar.getInstance (tz);
    System.out.println(c.getTime ()); // prints Tue Mar 18 02:56:53 IST 2008
    DateFormat dtf = DateFormat.getTimeInstance ();
    dtf.setTimeZone (tz);
    System.out.println(dtf.format (c.getTime ())); // prints 9:26:53 PMIt's no different from formatting the same number in various ways: 10 decimal == 0xA hexadecimal == 012 octal == 1010 binary. Same value, different representation. Same intant in time, different local time for each zone.
    Savvy?
    cheers, db

  • Classes & Methods

    Hi Experts,
                          Please see the following requirement in Classes & Methods, which I have to develop.I need this logic , Please send me the logic based up on old logic which i had given below.  
    The following needs to be created once, after which, the call to the method should be inserted in all related outputs.
    I have to create this Method:  IS_SEQUENCE_NOT_TO_PRINT. 
    This must be a value method in class ZCL_CONFIGURABLE_ITEM, passing document number VBDKR-VBELN that returns a parameter value: X = True, Blank = false.
    This is the example method which they had given me to see it and do the same to that method with suitable changes,
    [See e.g. method IS_GENOSYS_ITEM below from class ZCL_CONFIGURABLE_ITEM.
    For this e.g. Method logic is defined.
    **(METHOD is_genosys_item.
      STATICS: l_gen_cats TYPE z_pstyv_tt.
      DATA:    l_gen_cat_line TYPE zpstyv_line.
      IF l_gen_cats[] IS INITIAL.
        CALL METHOD zcl_configurable_item=>get_gen_valid_item_cats
          IMPORTING
            itemcats_range_all_out   = l_gen_cats
          EXCEPTIONS
            no_item_categories_found = 1
            OTHERS                   = 2.
        IF sy-subrc <> 0.
          is_genosys_item = space.
          RETURN.
        ENDIF.
      ENDIF.
      IF item_cat_in IN l_gen_cats
        AND NOT l_gen_cats[] IS INITIAL.
        is_genosys_item = c_checked.
      ELSE.
        is_genosys_item = space.
      ENDIF.
    ENDMETHOD.)**]
    For our Method ‘IS_SEQUENCE_NOT_TO_PRINT’
    ,we have to  Include the following logic :
    GET BILLTO_PARTNER customer number for the document (reading VBPA where VBELN = document number VBDKR-VBELN and partner PARVW = ‘RE’ / ‘BP’)
    Read table KNA1 to get field KNA1-KATR6 where KUNNR equals Bill to partner, and fields VBDKR-VKORG, VBDKR-VTWEG, VBDKR-SPART,
    Store first character of field KNA1-KATR6 in a work field e.g. W_ KATR6.
    Add the entry below to the ZLITERAL table in all clients
    Read the records from ZLITERAL table (reading key1 = C_ZLIT_GENOSYS_KEY, and key2 = C_KATR6_1) where C_KATR6_1 = attribute on class, with value = KATR6_1 .  You must add this attribute on the class.  Populate the internal table L_ZLITERAL_TAB type ZLITERAL_TAB_TYPE.
    See e.g. in method GET_GEN_VALID_PRICE_CONDS of class ZCL_CONFIGURABLE_ITEM
    [**(Method GET_GEN_VALID_PRICE_CONDS.
      data: l_zliteral_tab type ZLITERAL_TAB_TYPE,
            l_zliteral type zliteral,
            l_kscha type zkscha_line.
      select *
        from zliteral
        into table l_zliteral_tab
        where zkey1 = zliteral_key1_in
          and zkey2 = zliteral_key2_in.
      if sy-subrc = 0.
        loop at l_zliteral_tab into l_zliteral.
          clear l_kscha.
          l_kscha-sign = l_zliteral-zvalue1.
          l_kscha-option = l_zliteral-zvalue2.
          l_kscha-low = l_zliteral-zvalue3.
          append l_kscha to condtype_range_out.
        endloop.
      else.
        raise no_pricing_conds_found.
      endif.
    endmethod.)**]
    Declare a range R_KATR6_1 in the program and load range from internal table L_ZLITERAL_TAB.
    Check if stored field W_ KATR6 (i.e. first character of KNA1-KATR6) is in the range not to print R_KATR6_1.
    If the value in the stored field is in the range not to print R_KATR6_1, set the returning parameter to ‘X’ using attribute c_checked.  If not, it means that the sequence should be printed.  So the value method should return the value ‘ ‘ – initial. 
    In the print program, call the value method once while processing the header section and store the value in a work field.  This field can be used later when processing each item.  It is not necessary to call the method for each item.  Once is fine, as the data is at header level.
    How to call the value method:
    W_NO_SEQUENCE_PRINT = zcl_configurable_item=> IS_SEQUENCE_NOT_TO_PRINT (VBDKR).
    Add “ IF STATEMENT “ as seen below:
    IF W_NO_SEQUENCE_PRINT IS INITIAL.
      IF wgen-bulk_item <> 'X'.
        IF wgen-prfid = c_oligo.
          PERFORM write_oligo_sequence.
        ELSEIF wgen-prfid CS c_peptide.  "
          PERFORM write_peptide_sequence.
        ENDIF.
      ENDIF.
    ENDIF.

    Hi,
    try the online tutorial, which you can access via the Documentation/Tutorials link on the left side. Work on the examples given there and read the explainations carefully - first, try to understand, what is said there, then look at the examples and think about that, what every statement does and why it is there. Next step - try to reproduce the given example by yourself - do not look in the code of this example and do not copy parts of it - try to do it really by yourself - this way, you will learn, what the methods, you use, are for.
    greetings Marsian

  • How to obtain a URL from a path in a class' method?

    Hey everyone!
    Newbie here needing to convert the following method from a jsp page into a class for one of our applications.
    I have a method in a class which takes a path (as a string). However, I can't seem to figure out how to have java output the corresponding URL in a jsp page.
    For example, in the jsp file, I would provide something like:
    "./../../../../../../temp/gfx/" as the path.
    The "getRealPath()" method converts it nicely to a URL. However, I can't seem to figure out how to use this method within a class file. Is there a way to obtain the URL from a class' method? If so, how?
    --- old code below ---
    ServletContext application = getServletConfig().getServletContext();
    String msg = "";//#Either the IMG tag or message to be returned.
    File dir = new File(application.getRealPath(IMAGE_DIRECTORY));

    Thanks for that hint!
    Also, we're using Websphere... is there an easy way to take a partial url passed as a string and find the full path for it?
    Example:
    /images/today/
    and have it automatically converted to:
    F:/Inetpub/wwwroot/images/today/
    automatically in java?
    Or is this something where both a full system path and URL need to be passed?
    Thanks!

Maybe you are looking for

  • Emailing Invite created in Flash doesn't work

    I created a flash invite for a client and cannot get it to deliver correctly through email. I've tried everything that I have found here and it won't show up in some of the emails that I have tested. (mine is the only one that works). I then tried ex

  • Sound on/off by click a button in flex4????

    hello everybody, i want to make a website by flex.in that have sound  effect. i want when i load page have sound and if i don't want to listen  i can click button.the sound will stop play and else. But i don't know  how to make on/off sound by a butt

  • Batch watermarking many video clips

    I'm reorganizing my stock footage libaray and need to convert thousands of HD clips to flash for samples and comps and hopefully at the same time place a watermark across the clips. Can anyone help me figure out how to do this?  I did a search on the

  • How to get Layer label

    I want get "Layer label"(not "Item label")with AEGP,b ut no API exist in LayerSuite. Is there a method of obtaining it?

  • FIle Not Writable?

    I transfered all my video to an external hard drive before I replaced my internal hard drive and upgraded to iLife & iMovie 08. When I try to import my old video from the external hard drive I get this message - "FIle Not Writable: An error occurred