Find out method argument values at run time

Hi,
I am looking to find out the argument names and values of a method at run time. (This would allow for instance to automatically log argument names and values without writing tedious code).
The following thread did not seem to answer this problem
http://forum.java.sun.com/thread.jspa?forumID=4&threadID=411455
Any suggestions welcomed
Ben

As there is no Method-Object representing the current method call, I doubt you will get hands on the arguments passed to the method other than referencing them or building a framework "on top" (as, e.g., AspectJ). Also, Method in reflections does not hold the names of parameters, so it will be difficult to automatically print information on more than the signature.
The following is a not very robust, little play-around code for logging. Maybe it delivers enough information for some situations:
public class Test {
    void test(String arg0, int arg1) {
        log(new MethodGetter(){}.get(), arg0, arg1);
    public static void main(String[] args) {
        new Test().test("zero", 1);
    public static final void log(Method method, Object ... args) {
        final StringBuilder builder = new StringBuilder();
        builder.append(method.getDeclaringClass().getSimpleName()).append('.');
        builder.append(method.getName()).append('(');
        final Class<?>[] parameterTypes = method.getParameterTypes();
        for (int index = 0; index < parameterTypes.length; index++) {
            if (index > 0) {
                builder.append(", ");
            builder.append('(').append(parameterTypes[index].getSimpleName()).append(") ");
            if (index < args.length) {
                builder.append(args[index]);
            } else {
                builder.append("null");
        builder.append(");");
        System.out.println(builder.toString());
    public static abstract class MethodGetter {
        public Method get() {
            return getClass().getEnclosingMethod();
}It will print the following:
Test.test((String) zero, (int) 1);
Note that MethodGetter and log and main are enclosed for test purpose only.

Similar Messages

  • How to find out the rows inserted between a time period.

    Hi,
    Please help me to solve this.
    Table - emp.
    Colmns - empno(Primary Key),ename, mgr
    How to find out the rows inserted between a time period.
    For eg:- Between 02-Oct-2006 1 PM and 03-Oct-2006 2 PM.
    regards,
    Mathew.

    Hi,
    Maybe work:
    For each row, ORA_ROWSCN returns the conservative upper bound system change number (SCN) of the most recent change to the row. This pseudocolumn is useful for determining approximately when a row was last updated. It is not absolutely precise, because Oracle tracks SCNs by transaction committed for the block in which the row resides
    e.g.:
    SGMS@ORACLE10> create table test(cod number);
    Table created.
    SGMS@ORACLE10> insert into test values (1);
    1 row created.
    SGMS@ORACLE10> insert into test values (2);
    1 row created.
    SGMS@ORACLE10> commit;
    Commit complete.
    SGMS@ORACLE10> insert into test values (3);
    1 row created.
    SGMS@ORACLE10> commit;
    Commit complete.
    SGMS@ORACLE10> select SCN_TO_TIMESTAMP(ora_rowscn),ora_rowscn,cod from test;
    SCN_TO_TIMESTAMP(ORA_ROWSCN)       ORA_ROWSCN        COD
    06/11/06 08:56:56,000000000         727707205          1
    06/11/06 08:56:56,000000000         727707205          2
    06/11/06 08:57:05,000000000         727707210          3Cheers

  • Function Module to find out the release value in contract

    Dear All,
    I have to upload the contract with new accoutn assignment without changing the existing contract. For that i have to download all the existing contract data with value.
    In that case i have some issues regarding the value.
    For example : In the system old contract is created with value 1000 and the released value as 500.
    In that case i have to uload the new contract with all the details of existing contract with value of 500 (1000-500=500).
    How can i get the value (500) and from which table.Is there any functional module to find out the release value in contract.
    Thanks and regads,
    PM
    Edited by: PM on Jan 21, 2010 8:40 AM
    Edited by: PM on Jan 22, 2010 9:48 AM

    Hi
    You need to link the table VBFA and VBAK.
    For a contract you can check all the subsequent document (which you can filter whether you want to see Order / delivery / Billing) in VBFA and then from there pick the subsequent document no. and then from VBAK you can pick the Net value of these subsequent documents, and so you will have both the values (value of Contract and value in subsequent document) and you can determine the balance value.
    Regards
    Amitesh Anand

  • How to find out if a process is running or not

    Hi
    I need to find out if a process is running or not in my system
    If it is running i Need to stop the process
    Can anyone help me with this.

    ctrl+alt+delete and look at the processes that are running on your system. I usually click on the memory headerbar so it sorts them my the process that is using the most memory. :-)

  • How to find out the ASCII Values for Spanish character

    Hi,
    I had an requirement to store Spanish character and also need to fileter the records based on the Spanish character.
    Kindly guide me for below.
    To filter the Records which contains spanish characters?
    To get the ASCII Values for the particular column?
    E.g. we can find out the ASCII value of 'a' by using the syntax select ASCII('a') from dual.
    But I want to find the ASCII Values for the particular column value. Ie. name.
    E.g., Client name is "Suresh", I want to the ASCII Values for entire name of "Suresh".
    Kindly do the needful help / Guidance on this.
    Thanks,
    Orahar

    To expand on what I said in my first post, you want to do something along these lines:
    with t (thename) as
      select 'Suresh' from dual
    select thename
         , substr(TheName, level, 1)
         , ascii(substr(thename, level))
      from t
    connect by level <= length(thename);The output of the above query is:
    THENAM S ASCII(SUBSTR(THENAME,LEVEL))
    Suresh S                           83
    Suresh u                          117
    Suresh r                          114
    Suresh e                          101
    Suresh s                          115
    Suresh h                          104
    6 rows selected.Note that the WITH statement is only there to simulate a table for this example. With a table, all you do is get rid of the with and substitute the name "t" for the name of your table (also the name of the column to whatever name the column has in your table).
    Lastly, I suggest you post your question along with, an example table and the output you'd like to get in the PL/SQL forum. There are people there that will give you all kinds of great ways of solving that problem.
    HTH,
    John.

  • How to find out whether a program is running in Hyper-V virtual machine or not?

    If I want to make a program which only running in Hyper-V virtual machine, how can I find out whether
    the program is running in Hyper-V  virtual machine or not?

    https://gallery.technet.microsoft.com/scriptcenter/Determine-if-a-computer-is-cdd20473
    http://social.technet.microsoft.com/wiki/contents/articles/942.hyper-v-how-to-detect-if-a-computer-is-a-vm-using-script.aspx
    http://www.grouppolicy.biz/2014/01/how-to-target-group-policy-to-virtual-computers/
    Mike Crowley | MVP
    My Blog --
    Baseline Technologies

  • How we can find out the default value of the initialization parameters

    Hi All,
    How we can find out the default value of the initilization parameters from oracle database.
    Thanks
    Shiju

    Hi,
    you can find currently used parameter values v$parameter and v$parameter2.
    if default values is different real values then you can see alert.log.
    because in alert.log you will see non default values, rests is default.
    Edited by: admin on May 8, 2010 3:41 AM

  • How do I find out if my computer is running 64-bit?

    Hello,I am looking to buy one of 2 cameras,one is a Nikon D3200 the other a Canon EOS 1100D My computer is windows XP pro.How do I find if it is service pack 3?
    in the manual for the camera there is the following message   
    This application is not compatible with computers running 64-bit Windows XP.how do I find out if my computer is running 64-bit.thanks
    Whittonwanderer

    Hello there,
    If you right click on "My Computer" and select "Properties", you will be able to see if you are on Service Pack 3, and if it is 64 bit.  If it is 64 bit, it should specify where it says windows XP.
    Most likely, your computer is 32 bit, as the majority of home computers bought with Windows XP on them were 32 bit. 
    Hope your camera's work out well for you. 

  • How do i find out what version i'm running

    How do i find out what version i'm running, i'm on CC (6 is it), i want to check if i'm running 6.0 or 6.01 - the update, i cannot see where my version is. If i press 'About Adobe Lightroom', it takes me to the credits box which shows what camera raw i'm running, nothing else.

    This is beginning to make some sense, thank you.
    At the top of the LR forum i see - Lightroom CC 2015.0.1/Lightroom 6.0.1 update now available
    I am subscribed. Seems 6 is equivalentto CC. And 2015.0.1 is 6.01.
    Upon opening Cats i get the attached. (Why does it not say CC :-)
    A little complicated isn't it. I think we've gotten to the bottom of it.
    I think it would help though when various announcements are made (I think I first saw Victoria Bs announcement regarding 6.01, but she and others have not mentioned that 6.01 may mean 2015.0.1 if you are CC)

  • How to find out Particular column value in DB

    Hi All,
    I have to find out Particular column value in DB .can U tell me the Query for that.

    There is one way:
    Re: How to write the Query

  • Function module to find out the changed values from tables

    What is the standard function module to find out the changed values (the old & new values) from tables in SAP ?

    Hi Harish,
    Please elaborate your requirement...
    Please have a look on CDHDR AND CDPOS tables... it contains changed data... but all chages are not being tracked using it..
    Try Below FMs as well..
    For Header Level...
    CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
        EXPORTING
          date_of_change    = cdhdr-udate
          objectclass       = cdhdr-objectclas
          objectid          = cdhdr-objectid
          time_of_change    = cdhdr-utime
          username          = cdhdr-username
        TABLES
          i_cdhdr           = icdhdr
        EXCEPTIONS
          no_position_found = 1
          OTHERS            = 2.
    For Item Level
    CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
          EXPORTING
            changenumber      = icdhdr-changenr
          IMPORTING
            header            = cdhdr
          TABLES
            editpos           = icdshw
          EXCEPTIONS
            no_position_found = 1
            OTHERS            = 2.
    Hope it will solve your problem..
    Thanks & Regards
    ilesh 24x7
    ilesh Nandaniya

  • How find out the duplicate value from each columns.

    I have below four columns,
    How can i find out the duplicate value from each columns.
    with All_files as (
    select '1000' as INVOICE,'2000' AS DELIVERYNOTE,'3000' CANDELINVOICE,'4000' CANDELIVERYNOTE from dual union all
    select '5000','6000','7000','8000' from dual union all
    select '9000','1000','1100','1200' from dual union all
    select '1200','3400','6700','8790' from dual union all
    select '1000','2000','3000','9000' from dual union all
    select '1230','2340','3450','4560' from dual
    SELECT * FROM All_files
    Output should be as per below.
    1000 2000 3000 4000
    9000 1000 1100 1200
    1200 3400 6700 8790
    1000 2000 3000 9000
    Required to check uniqueness in cross columns.
    Thanks.

    Try this (sorry about the formatting)...
    WITH all_files AS (SELECT   '1000' AS INVOICE,
                                '2000' AS DELIVERYNOTE,
                                '3000' CANDELINVOICE,
                                '4000' CANDELIVERYNOTE
                         FROM   DUAL
                       UNION ALL
                       SELECT   '5000',
                                '6000',
                                '7000',
                                '8000'
                         FROM   DUAL
                       UNION ALL
                       SELECT   '9000',
                                '1000',
                                '1100',
                                '1200'
                         FROM   DUAL
                       UNION ALL
                       SELECT   '1200',
                                '3400',
                                '6700',
                                '8790'
                         FROM   DUAL
                       UNION ALL
                       SELECT   '1000',
                                '2000',
                                '3000',
                                '9000'
                         FROM   DUAL
                       UNION ALL
                       SELECT   '1230',
                                '2340',
                                '3450',
                                '4560'
                         FROM   DUAL),
        t_base
           AS (SELECT      invoice
                        || ','
                        || deliverynote
                        || ','
                        || candelinvoice
                        || ','
                        || candeliverynote
                           str
                 FROM   all_files),
        t_str
           AS (SELECT   str || ',' AS str,
                        (LENGTH (str) - LENGTH (REPLACE (str, ','))) + 1
                           AS no_of_elements
                 FROM   t_base),
        t_n_rows
           AS (    SELECT   LEVEL AS i
                     FROM   DUAL
               CONNECT BY   LEVEL <=
                               (    SELECT   SUM (no_of_elements) FROM t_str)),
        t_build AS (SELECT   t_str.str,
                             nt.i AS element_no,
                             INSTR (t_str.str,
                                    DECODE (nt.i, 1, 0, 1),
                                    DECODE (nt.i, 1, 1, nt.i - 1))
                             + 1
                                AS start_pos,
                             INSTR (t_str.str,
                                    1,
                                    DECODE (nt.i, 1, 1, nt.i))
                                AS next_pos
                      FROM      t_str
                             JOIN
                                t_n_rows nt
                             ON nt.i <= t_str.no_of_elements),
        t_build2
           AS (SELECT   RTRIM (str, ',') AS original_string,
                        SUBSTR (str, start_pos, (next_pos - start_pos))
                           AS single_element,
                        element_no
                 FROM   t_build),
        t_build3
           AS (SELECT   single_element,
                        COUNT( * )
                           OVER (PARTITION BY single_element
                                 ORDER BY single_element)
                           ele_count
                 FROM   t_build2)
    SELECT   DISTINCT INVOICE,
                      DELIVERYNOTE,
                      CANDELINVOICE,
                      CANDELIVERYNOTE
      FROM   all_files, t_build3
    WHERE   ele_count > 1
             AND (   INVOICE = single_element
                  OR DELIVERYNOTE = single_element
                  OR CANDELINVOICE = single_element
                  OR CANDELIVERYNOTE = single_element)I think this will be faster than the previous solution?
    Cheers
    Ben
    Edited by: Munky on Feb 17, 2011 2:11 PM - "I think this will be faster than the previous solution?", nope - it's not :(

  • Query to find out weekly average of job execution time

    I have a table which has the following details:
    CREATE TABLE JOB_DETAILS (JOB_START_DATE DATE,
    JOB_END_DATE DATE,
    JOB_START_TIME NUMBER,
    JOB_END_TIME NUMBER,
    HOURS_OF_EXECUTION NUMBER,
    DETAILS VARCHAR2(20));
    INSERT INTO JOB_DETAILS VALUES ('01-FEB-2007','01-FEB-2007',10.04,20.09,10.04,'WEEKDAY');
    INSERT INTO JOB_DETAILS VALUES ('07-FEB-2007','07-FEB-2007',00.00,00.00,00.00,'WEEKEND');
    commit;
    Job_Start_Date Job_End_Date Job_Start_Time Job_End_Time Hours_Of_Execution DETAILS
    1/2/2007 1/2/2007 10:04 20:09 10:04
    1/7/2007 1/7/2007 0:00 0:00 0:00 Weekend
    Our jobs wont run on week ends and on holidays where we see "Hours_of_execution" as 0.
    Week means Monday to Friday for me.
    (1) I want a query which gives me a weekly,monthly average of how many hours the job ran.
    (2) I want to find out the week, when the average execution of the job is &gt; 10 hours.
    can anyone help in framing this query to get the details?
    Thanks

    Why make it so hard for yourself by removing the time from the date and storing it separately?
    alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS'
    session altered
    WITH t AS (SELECT SYSDATE start_date, SYSDATE+0.61 end_date FROM dual)
    SELECT start_date, end_date, numtodsinterval(end_date-start_date,'DAY') execution_time
    FROM t
    START_DATE          END_DATE          EXECUTION_TIME
    11/12/2008 11:22:21     12/12/2008 02:00:45     +00 14:38:24.000000

  • ADF: How to find out which query has taken what time?

    Hi,
    I have an ADF application which has many SQL queried running on each button click/page load, so how to find out which query is taking what amount of time? So that i can identify the long running queries and modify them to improve the application performance.
    Thanks in advance.

    Hi,
    As suggested by Timo,you need to start tracing on oracle.jbo package for getting the SQL queries.But I think the second option suggested by him would be better.You will have to override executeQueryForCollection method in VO Impl class .Pseudo code would be
    @Override
    Take start time
    super.executeQueryForCollection
    Take end time

  • Find Unicode for selected Symbol at run time

    Hi,
    I have one InDesign document which is having lots of Symbols with applied font Symbol Medium.
    While manually selecting the perticular symbol  we can find the releted Unicode in Glyphs.
    But I want to do this task by using script means I want to find the unicode for perticular selected symbol at run time without any manual intervention.
    please help me out.
    Regards,
    Raj

    Hi Jongware
    thanks for reply,
    as you mentioned  app.selection[0].contents.charCodeAt(0) is giving only the unicode value of Special caracters like emSpace, EnSpace, NewLine, etc.
    But we are expecting unicode of characters like µ (Unicode: 00B5) , λ (Uncode: 03BB).

Maybe you are looking for

  • Please help me to run a submitted job in database

    Hi, Guys: I need your help for a problem: I need to have a job runnning every day midnight to update a column in a table, so I wrote a procedure to do it, submit job as follows: set serveroutput on; declare   n_jobno BINARY_INTEGER; begin   dbms_job.

  • Add a link to page option with flash animations??

    Hello, I see that you have an option for images if you insert an image, you have a link to html page option But if you insert a flash animation , there is no link option? as some research i have found that I have to do it i flash itself. Why did you

  • Command_link bug in JSF 1.1

    When I click some hyperlink, (generated by Command_link component), It pops out a javascript error message, indicates that field *:idcl is null or null object, namely the field *:idcl is missing. I have a close look at html code, I found that most Co

  • I don't see an option anymore for backing up my music library to a disc?

    Does anyone know if we can still backup my music library to a disc?  If not, what happens if the computer crashes?

  • In-App Downloads with in-app storage

    Hello everyone, I'm new in windows development. I want to sell design elements and themes in windows store but can't find a way to store files in windows app. Short of what I'm seeking - I want that people could download windows store app, preview fi