Getting argument type names

Hi all,
I am doing a final year student project in constructing a visual tracing tool in java. I have a problem getting the method arguments and method argument types similar to problem posted before http://forum.java.sun.com/thread.jsp?forum=47&thread=200408
basically every time i track the method entry event and ask for the list of argument types i get the outmof bounds exception as if there is nothing in the method arguments. But i forced values into the arguments.They are there. I cannot understand this. I trawled through the examples and trace example with the java documentation and followed their example but still no luck. The program i'm tracing is simple on below
public class testProgram{
     private String name;
     private int age;
     public testProgram(){
          setage(22);
          setName("ciaran");
     public void setage(int theAge){
          age = theAge;
     public void setName(String theName){
          name = theName;
     public static void main(String[] args ){
          testProgram aTest = new testProgram();
the tracking code is below
     public ParseMethodData(MethodEntryEvent event){
          locEvent = (LocatableEvent) event;
          Location loc = locEvent.location();
          Method meth = loc.method();
          threadRef = locEvent.thread();
          refType = loc.declaringType();
          try{
               ArrayList list =(ArrayList) meth.argumentTypeNames();
          }catch(IndexOutOfBoundsException iobe){
               iobe.printStackTrace();
Any "general" ideas would be welcome. Why are the arguments not coming out.      

Hia there,
I've been looking at the jdb source code for ages now, and have had the same problems with you here. What I found was that you need to wait until a vmInterupptedEvent has been generated, otherwise you cannot access the information safely - the jvm may not have been suspended at the time that the methodentryevent was generated. This really is the case because I tested the EventHandler code in the JDB (or tty) source code. So, if you're interested in information like argument names, values and types from a methodevent, then get a list of argument type names from the method event, and when the virtual machine is suspended (i.e. a vmInterrupted event has been generated) you can safely map these to their values in the corresponding stackframe that execution is in.
There are about ten million other problems I have found with using the JDB, and stuff like that but I hope this helps. What I said worked for me, but murphy's law (most prevalent with the JDI) suggests it won't for you.
PS. So what you need to do is, implement vmInterrupted, and ensure requests are set to true for these, then use access data once this has been called.
Byee - Edd.

Similar Messages

  • Is it possible to get object type name  with help of key field?

    can any one tell me is it really possible to get the object type name if i have only key field,
    are there any tables which store the object type names & keyfield.  or there are any functionmodue which gives object type name by entering keyfield.

    Hello,
    If the PO has workflows associated with it, there is a table SWIWIOBJCT which stores details of the workitem, object key , object type details.
    If you input the object key to this table ( For ex: PO number in this case) , it will give you the corresponding object type for the object key for Workitem type F.
    Thanks,
    Sowmya Arni

  • REST Query to Get Content Type Name

    I'm just getting started learning to use the SharePoint REST interface.  One of the first things I'd like to do is return the content type name for a list item in a document library (the document library is configured with several content types).  From
    what I've read, it looks like I need to use the $expand query option.  So, my REST query looks like this:
    http://localhost/_api/web/lists/Documents/Items()?&$select=ContentType/Name&$expand=ContentType/Name
    But it's not working.  I can't "dig" out the content type name property.  In other words the $expand query option is not working.  I just receive the following which includes a link to the content type: 
      <entry m:etag="&quot;2&quot;">
        <id>4078e129-ac4b-44b8-b469-bcc083f2268d</id>
        <category term="SP.Data.DocumentsItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <link rel="edit" href="Web/Lists(guid'cd710fd1-057e-4ee7-b0bd-1f014218ea3e')/Items(36)" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ContentType" type="application/atom+xml;type=entry" title="ContentType" href="Web/Lists(guid'cd710fd1-057e-4ee7-b0bd-1f014218ea3e')/Items(36)/ContentType"
    />
        <title />
        <updated>2013-04-12T00:16:26Z</updated>
        <author>
          <name />
        </author>
        <content type="application/xml" />
      </entry>
    I've tried difference variations and if I just use "$expand=ContentType" then I get all the list items with the content type fully expanded within each item.
    What am I missing?

    It's been awhile since this question got asked, but I figured i'd post for anyone who happens to stumble
    on it.
    Try this:
    http://localhost/_api/web/lists/Documents/Items(<item
    id>)/ContentType?$select=Name

  • How is it posible to get the File name, size and type from a File out the H

    How is it posible to get the File name, size and type from a File out the HttpServletRequest. I want to upload a File from a client and save it on a server with the client name. I want to conrole before saving the name, type and size of the file.How is it posible to get the File name, size and type from a File out the HttpServletRequest.
    form JSP
    <form name="form" method="post" action="procesuploading.jsp" ENCTYPE="multipart/form-data">
    File: <input type="file" name="filename"/
    Path: <input type="text" readonly="" name="path" value="c:"/
    Saveas: <input type="text" name="saveas"/>
    <input name="submit" type="submit" value="Upload" />
    </form>
    proces JSP
    <%@ page language="java" %>
    <%@ page import="java.util.*" %>
    <%@ page import="FileUploadBean" %>
    <jsp:useBean id="TheBean" scope="page" class="FileUploadBean" />
    <%
    TheBean.doUpload(request);
    %>
    BEAN
    import java.io.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletInputStream;
    public class FileUploadBean {
    public void doUpload(HttpServletRequest request) throws IOException
              String melding = "";
              String filename = request.getParameter("saveas");
              String path = request.getParameter("path");
              PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("test.java")));
              ServletInputStream in = request.getInputStream();
              int i = in.read();
              System.out.println("filename:"+filename);
              System.out.println("path:"+path);
              while (i != -1)
                   pw.print((char) i);
                   i = in.read();
              pw.close();
    }

    Thanks it works great.
    Here an excample from my code
    import org.apache.commons.fileupload.*;
    public class FileUploadBean extends Object implements java.io.Serializable{
    String foutmelding = "geen";
    String path;
    String filename;
    public boolean doUpload(HttpServletRequest request) throws IOException
         try
         // Create a new file upload handler
         FileUpload upload = new FileUpload();
         // Set upload parameters
         upload.setSizeMax(100000);
         upload.setSizeThreshold(100000000);
         upload.setRepositoryPath("/");
         // Parse the request
         List items = upload.parseRequest(request);
         // Process the uploaded fields
         Iterator iter = items.iterator();
         while (iter.hasNext())
         FileItem item = (FileItem) iter.next();
              if (item.isFormField())
                   String stringitem = item.getString();
         else
              String filename = "";
                   int temp = item.getName().lastIndexOf("\\");
                   filename = item.getName().substring(temp,item.getName().length());
                   File bestand = new File(path+filename);
                   if(item.getSize() > SizeMax && SizeMax != -1){foutmelding = "bestand is te groot.";return false;}
                   if(bestand.exists()){foutmelding ="bestand bestaat al";return false;}
                   FileOutputStream fOut = new FileOutputStream(bestand);     
                   BufferedOutputStream bOut = new BufferedOutputStream(fOut);
                   int bytesRead =0;
                   byte[] data = item.get();
                   bOut.write(data, 0 , data.length);     
                   bOut.close();
         catch(Exception e)
              System.out.println("er is een foutontstaan bij het opslaan de een bestand "+e);
              foutmelding = "Bestand opsturen is fout gegaan";
         return true;
         }

  • How to get the document type, name and revision from the search page cv04n

    Hello,
    After performing cv04n and getting a list of documents satisfying the search criteria, how can I then get the document type, name and revision of the selected document using ABAP?
    Thanks

    HI,
    IN table DRAW... u have Document type, Version and document number.
    In Table DRAT also u get Document Type, Version, Number and Description of Doucment.
    Regards
    SAB

  • Problem with getting the file name and type from OAMessageFileUploadBean

    Hi Tapash,
    I am trying the code below to get the file name and mime type from OAMessageFileUploadBean,
    DataObject fileUploadData = (DataObject)pageContext.getNamedDataObject("Documents");
    String uFileName = (String)fileUploadData.selectValue(null, "UPLOAD_FILE_NAME");
    String contentType = fileUploadData.selectValue(null, "UPLOAD_FILE_MIME_TYPE");
    But this piece of code gives errors saying that selectValue selectValue(null, java.lang.String) not found in class oracle.svc.DataObject
    Any ideas? why this code is giving error?
    Can i handle the event of browse button for OAMessageFileUploadBean?
    Regards,
    Nagesh Manda.

    Try using class oracle.cabo.ui.data.DataObject
    --Shiv                                                                                                                                                                                                       

  • Getting the JAXB exception like "Two classes have the same XML type name-"

    Getting the JAXB exception like "Two classes have the same XML type name...",
    Here is the exception details:
    Exception in thread "main" com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions Two classes have the same XML type name "city". Use @XmlType.name and @XmlType.namespace to assign different names to them. this problem is related to the following location: at com.model.City at public com.model.City com.model.Address.getCurrentCity() at com.model.Address this problem is related to the following location: at com.common.City at public com.common.City com.model.Address.getPreviousCity() at com.model.Address
    at com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException$Builder.check(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(Unknown Source) at com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source) at com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at javax.xml.bind.ContextFinder.newInstance(Unknown Source) at javax.xml.bind.ContextFinder.find(Unknown Source) at javax.xml.bind.JAXBContext.newInstance(Unknown Source) at javax.xml.bind.JAXBContext.newInstance(Unknown Source) at com.PojoToXSD.main(PojoToXSD.java:17)
    I took the example like:
    package com.model; ---->this package contains 'Address' class and 'City' class
    public class Address {
    private String areaName; private City currentCity; private com.common.City previousCity;
    package com.model;
    public class City {
    private String cityName;
    Another city class in "com.common" package.
    package com.common;
    public class City {
    private String pinCode;
    We need to create XSDs and needs to do the Marshalling and unmarshalling with the existing code in our project(like as above example code), code does not have any annotations like "@XmlRootElement/@XmlType" and we can not able to change the source code.
    I would like to know is there any solution to fix the above issue or any other ways to create XSDs and marshaling/unmarshalling(like MOXy..etc)?
    It would be great if i can get the solution from any one....May thanks in advance.
    Thanks,
    Satya.

    Getting the JAXB exception like "Two classes have the same XML type name...",
    Here is the exception details:
    Exception in thread "main" com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions Two classes have the same XML type name "city". Use @XmlType.name and @XmlType.namespace to assign different names to them. this problem is related to the following location: at com.model.City at public com.model.City com.model.Address.getCurrentCity() at com.model.Address this problem is related to the following location: at com.common.City at public com.common.City com.model.Address.getPreviousCity() at com.model.Address
    at com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException$Builder.check(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(Unknown Source) at com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source) at com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at javax.xml.bind.ContextFinder.newInstance(Unknown Source) at javax.xml.bind.ContextFinder.find(Unknown Source) at javax.xml.bind.JAXBContext.newInstance(Unknown Source) at javax.xml.bind.JAXBContext.newInstance(Unknown Source) at com.PojoToXSD.main(PojoToXSD.java:17)
    I took the example like:
    package com.model; ---->this package contains 'Address' class and 'City' class
    public class Address {
    private String areaName; private City currentCity; private com.common.City previousCity;
    package com.model;
    public class City {
    private String cityName;
    Another city class in "com.common" package.
    package com.common;
    public class City {
    private String pinCode;
    We need to create XSDs and needs to do the Marshalling and unmarshalling with the existing code in our project(like as above example code), code does not have any annotations like "@XmlRootElement/@XmlType" and we can not able to change the source code.
    I would like to know is there any solution to fix the above issue or any other ways to create XSDs and marshaling/unmarshalling(like MOXy..etc)?
    It would be great if i can get the solution from any one....May thanks in advance.
    Thanks,
    Satya.

  • How to get the IDOC name attached with message type (IDoc at receiver end)

    Hello Friends,
    I have configured the Order Confirmation Idoc.And the port used is XML_HTTP. in this port generally the idocs are sent to a java servlet.
    So there the idocs are being created with name  :- Idoc_no.XML
    but i need to get the IDoc name prefixed or attached with the message type name, that the particular idoc uses.
    waiting for your replies .
    thanks,
    jeevan

    Hi Jeevan,
    I am sorry for the confusion, the solution i provided is used when we go for XML FILe port. But when we go for XML HTTP port, this option is not available in SAP. So we need to check with the target system, whether there is any option available to read the file contents before saving , so that we can save the idoc with the required file name .
    With my knowledge i assume why this option is not there for XML HTTP port is when we use XML HTTP port the idoc will be converted into XML and will be transported over HTTP protocol to an remote system which may be any type like XI, Java Servlet, Business connector, .Net etc. So in that case all the systems may not support the file name what we propose from the SAP. This is my assumption.
    Please go through the help provided by SAP for XML Port types
    http://help.sap.com/saphelp_nw04/helpdata/en/21/e9c975eb1911d6b2ea00508b6b8a93/frameset.htm
    Please check with the Java guys who are working at the target end, whehter they may help you to resolve.
    Thanks & Regards
    Vijayanand Poreddy

  • Getting validation error "argument type mismatch"

    I have 2 dropdowns and submit button in jspx page. jspx page has corresponding backing bean with respective properties. When I select values in dropdowns and hit submit I am getting redirected to same page with validation error "argument type mismatch" beneath the dropdowns.

    Kate, I bet there is more to the error than you have given here. If I were a betting man I would say it has something to do with the difference between a jbo Number type and the java Number type. I have run into this particular problem twice before. Basically the oracle jbo Number type is not compatible or automatically caste-able into a java type Number. So, perhaps in your backing bean, you have some thing that is defined as a Number in one of jdeveloper's declaritive fields (jbo Number) and in a java program somewhere you have probably declared a variable as just plain-old Number which is a different class...coming from Java's built-in types classes.
    Hope that's your problem, and I hope this helps.
    Michael F.

  • How to get mobile model name for different types mobile devices

    Hi,
    I have checked few thread in this forum about getting mobile model name at server. So far, i noticed the mobile name is set manually in the midlet as user-agent .
    HttpConnection connection = null;           connection = (HttpConnection)Connector.open(url);          connection.setRequestMethod(HttpConnection.POST);          connection.setRequestProperty("User-Agent","Nokia7110 Profile/MIDP-1.0 Configuration/CLDC-1.0");
    i retrieve the header information from servlet like below :-
    String userAgent = request.getHeader("User-Agent");
    How to get mobile model name for different model devices , not by manually adding the model name in midlet?
    Thanks in advance :-)

    Hi,
    In J2ME there is no method to get the model number from the device. how ever you can use the APIs provided by the device manufacturer if available. But still the APIs will not work with devices from other manufacturer or sometimes it will not work with the devices of the same manufacturer if the API is not supported. so it is better to send the device model name through the header.

  • RisPort problems - argument type mismatch

    Hi!
    I'm trying to get a list of devices via RisPort. I copied example from http://www.cisco.com/univercd/cc/td/doc/product/voice/vpdd/cdd/5_0/ccmdev/ccmdvch2.htm chapter Real-Time Information (RisPort)
    Selecting Cisco Unified CallManager Real-Time Information , but service returning following xml:
    <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server.userException</faultcode><faultstring>java.lang.IllegalArgumentException: argument type mismatch</faultstring><detail><ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">CUCM6</ns1:hostname></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
    And my question is: How can I recognize, which argument? There are no any notes or details :-(
    Many thanks for your ideas!!
    ps. or is it posible to get that list any other way? (CUM6)

    check your gmail~i sent my code to your email!
    here is the xml String:
    String strSoapMsg="<?xml version=\"1.0\" encoding=\"utf-8\"?>"+
    "http://schemas.xmlsoap.org/soap/envelope/\" "+
    "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" "+
    "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"+
    ""+
    "http://schemas.xmlsoap.org/soap/encoding/\">"+
    ""+
    ""+
    ""+
    "http://schemas.xmlsoap.org/soap/encoding/\" "+
    "xsi:type=\"ns1:CmSelectionCriteria\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\" "+
    "xmlns:ns1=\"tns:CmSelectionCriteria\">"+
    "2000"+
    ""+
    "Name"+
    ""+
    ""+
    ""+
    ""+

  • How to get argument value from portal desktop URL

    hi,guys
    I have a question ,it is how to get argument value.see:
    in one portal desktop,I have a hyperlink like this
    http://localhost:7001/TestPortal/appmanager/testPortal/testDST?eventId=1
    after click,then will be switch another desktop "testDST"
    I tried to get value from request,but failure.
    @RequestMapping
    public String listTestList(RenderRequest request, RenderResponse response,ModelMap model) {
    //HttpServletRequest httpRequest = (HttpServletRequest) ; //request.getAttribute("javax.portlet.portletc.httpServletRequest");
    //log.debug("httprequest eventId>>>" + httpRequest.getParameter("eventId"));
    log.debug("render request eventId>>>" + request.getParameter("eventId"));
    I can't get this value from request,also tried httpServeltRequest,but httpServletRequest can't get,it is null;
    so ,how to get this value,thank you very much.
    regards
    aris

    Hello,
    It is true for JSR168 portlets that you can't just arbitrarily set parameters on a URL and get access to them inside your portlet- you must use the appropriate APIs on the PortletURL class to set parameters that you can retrieve. This is the only portable (standards-compliant) way to implement the functionality you want.
    However, for your particular use-case, you can get the URL parameters from the (non-JSR168) HttpServletRequest object. The only reason you are getting a null object for that is because the attribute name is wrong. This should work:
    HttpServletRequest httpRequest = (HttpServletRequest)(request.getAttribute("javax.servlet.request"));
    String eventId = httpRequest.getParameter("eventId");
    Kevin

  • Getting the variant name when the report program is run in background

    Hi All,
    How to get the variant name for the report program when run in background? My requirement is to create an email attachement with the name 'variant.XLS', where variant = selection screen variant, when the report program is run in background. The system field SY-SLSET holds the variant name only when run online.
    Any pointers to this will be highly appreciated.
    Thanks and regards,
    Nilesh.

    Hello Nilesh,
    Please find the algo:
    1. Call the FM: GET_JOB_RUNTIME_INFO to get the background job details.
    2. Select data from TBTCP using these details:
    DATA:
    FP_EVENTID   TYPE BTCEVENTID
    FP_EVTPARM   TYPE BTCEVTPARM
    FP_ACTIVE    TYPE BTCXPGFLAG
    FP_JOBCNT    TYPE BTCJOBCNT
    FP_JOBNM     TYPE BTCJOB
    FP_STEPCNT   TYPE BTCSTEPCNT.
      CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
        IMPORTING
          EVENTID                 = FP_EVENTID
          EVENTPARM               = FP_EVTPARM
          EXTERNAL_PROGRAM_ACTIVE = FP_ACTIVE
          JOBCOUNT                = FP_JOBCNT
          JOBNAME                 = FP_JOBNM
          STEPCOUNT               = FP_STEPCNT
        EXCEPTIONS
          NO_RUNTIME_INFO         = 1
          OTHERS                  = 2.
      IF SY-SUBRC <> 0.
    *   Error calling FM: GET_JOB_RUNTIME_INFO
      ENDIF.
    DATA: FP_VARIANT TYPE BTCVARIANT.
      SELECT JOBNAME JOBCOUNT STEPCOUNT VARIANT
      FROM   TBTCP
      INTO TABLE L_IT_TBTCP
      WHERE  JOBNAME   = FP_JOBNM
      AND    JOBCOUNT  = FP_JOBCNT
      AND    STEPCOUNT = FP_STEPCNT.
      IF SY-SUBRC = 0.
        SORT L_IT_TBTCP BY JOBNM JOBCNT STEPCNT.
        READ TABLE L_IT_TBTCP INTO L_WA_TBTCP INDEX 1.
        IF SY-SUBRC = 0.
          FP_VARIANT = L_WA_TBTCP-VARIANT.
        ENDIF.
      ENDIF.
    Hope this helps.
    BR,
    Suhas

  • How can I get the path name and rename it?

    I Hope someone who knows more about automator than I can help me out here. What I'm trying to do is get the path file name, while also changing part of it. Here is my example:
    I can get the path name with this "Get Path" script I found http://automatorworld.com/archives/get-path/all-comments/
    It does half the job so I just need to tweak it but know how. When I get the path this is what I'll get: /Volumes/Public/Creative Services/Campaigns/2010/NCDDiv-32CDV Upgrade/NCDDIV-32Versions.xls
    I need to remove the beginning part"/volumes" to "file://///nhmanmkt01"
    This is so I can send the path from our sever where we keep our files to my windows friends so they can open it.
    Thanks for any help you can provide!

    ok, make the following workflow.
    1. get selected finder items.
    2. run shell script
    <pre style="
    font-family: Monaco, 'Courier New', Courier, monospace;
    font-size: 10px;
    margin: 0px;
    padding: 5px;
    border: 1px solid #000000;
    width: 720px;
    color: #000000;
    background-color: #ADD8E6;
    overflow: auto;"
    title="this text can be pasted into the Script Editor">
    for f in "$@"
    do
    echo "$f"|sed 's%/Volumes%file://///nhmanmkt01%'
    done</pre>
    set the script to accept input as arguments
    3. copy to clipboard
    save it as a finder plugin.

  • Get the Type of a generic field at runtime, How to?

    Hello,
    As the topic already says, i need to get the Type of a particular field of a class. This field is declared private and generic. In C# there is a method
    Type Object.getTypeIs there any specific way to do this in Java 1.5?
    Please excuse my poor english.
    Thanks in advance.
    Markus

    McNepp wrote:
    endasil wrote:
    McNepp wrote:
    If you want to know the parametrized type (String in the example), I think there is no way of knowing this in Java 1.5 or Java 1.6, since the parametrized type is erased and not available at run time.The type of a parameterized field is not erased.For most intents and purposes, it is. Type erasure refers to the fact that at runtime, there are not actually multiple class binaries depending on the generic arguments to a class. Therefore, an ArrayList<T> is actually just an ArrayList with no generics.
    Frankly, I don't understand why you insist that the information on generic fields that the OP was asking about is lost at runtime.I wasn't trying to insist that. At the time, I was replying more to Saish and trying to reaffirm that most information about generics is lost at run-time. I mistakenly ignored how you qualified it with "field."
    What you write about instances of generic classes losing their type information is of course correct, albeit not to the point of the original question.Nope, you're right. I was just trying to reconcile the fact that many people get confused that there's any information available at run-time, and so start down the path of thinking that type erasure doesn't exist. But it very much does.
    The original question was about how to obtain the type of a generic field.And I did show in my example that even that is fairly limited, given that if the type is provided by the parameter of the class, it doesn't give you anything useful (I'm not trying to say you said it would!).
    The compiler preservers this information in the class file, so it can be obtained at runtime. Frameworks like JPA put this to use extensively, proving that it is of real value.Definitely. However I don't see this having as much to do with generics as basic reflection functionality. If you can get the type of a field at run-time, you should be able to get the parameters as well! That should in no way belittle its value, though. But I would have guessed (knowing little about) that JPA wouldn't put that to use so much as the type parameters of an accessor return type or mutator argument type. Especially since I thought we'd shown that you would need your fields to be non-private for JPA to be able to gain information about their type.
    Edit: getDeclaredField works fine with private members, and returns the expected "java.lang.String" from jschell's example above
    Edited by: endasil on 28-Apr-2009 10:39 AM

Maybe you are looking for

  • Jndi lookup in resin

    Hi,           I'm facing problems while lookingup Home, from Resin to           wlserver6.1.           I'm new to Resin and unable to find any clean documentation either.           I'm able to lookup the server from Tomcat, but not from resin.       

  • Importing Avid Project into Premiere Pro CC 2014?

    Hi all, I'm a director editing a feature film with an editor. My editor is editing via Avid Media Composer version 7.  I also have Avid 8 on my computer.  Long story short, I'm not avid proficient and would love to import sequences, bins of synced fo

  • About ordering replacement for faulty earbuds...and serial numbers...

    hello... i saw this user called "tsik" in this forum who says : "yes they are you just need to fill out a form online and they will send you a new pair in a day or two " about faulty earphones..... well..can some1 post the link to this form?? apple's

  • Map java.sql.Timestamp to JDBC-MySQL TIMESTAMP?

    Java provides the java.sql.Timestamp class specifically to be able to make use of the greater-accuracy timestamps provided in JDBC and underlying datastores. Is there a way to set up a Kodo mapping file such that a persistent class with a java.sql.Ti

  • Org mgmt IT ( delete tadir entree

    I am creating a new PD infotype with PPCI transaction, but the transaction did not generate the required objects. I had created the 'HRI9nnn'structure in the dictionary. I'm unable to delete previous entries in TADIR.. TADIR ENTRIES R3TR TABL HRI9xxx