Get Name of Variable using Reflection

Is there a way to get the variable name?  I assume I'd have to use Reflection.  Here's an example of what I mean.
Dim tileCount As Integer
' get tileCount variable name here
Debug.Print("tileCount")
Ryan

I need to validate a variable.  If the variable isn't valid I want to throw an ArgumentOutOfRangeException.
Variable names are internal to your program.  They don't actually exist as part of your executable code, but it is possible with reflection to look back into the source code and find certain information.   But it is not possible
to identify a variable by its value. However, you should not be using variable names to identify your objects.
If you create a class for your values then you can build a IsValid test for the value field of the class, and return information about the class instance.  For example:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim thisTile As New Tile With {.Height = 7, .Name = "Fred"}
If Not thisTile.IsValidHeight Then
Throw New ArgumentOutOfRangeException("Instance", thisTile.Name, String.Format("{0} is not a valid tile height.", thisTile.Name))
End If
End Sub
End Class
Public Class Tile
Public Name As String
Public Height As Integer
Public Function IsValidHeight() As Boolean
Dim myArray() As Integer = {3, 4, 6, 7}
If Not myArray.Contains(Me.Height) Then
Return True
Else
Return False
End If
End Function
End Class
Great idea! :)
Still lost in code, just at a little higher level.

Similar Messages

  • How to get name of variable passed to method

    How can I get the name of the variable that's passed into a method, in the method?
    for instance: the following code prints an array to a text file, and includes the name of the array in the name of hte text file. So, to call it, I have to do this:
    printarray(myArray, "myArray")
    so that the text "myArray" gets passed in & used in teh fileNM output.
    This is inelegant, and I'd like to just call it like this:
    printarray(myArray)
    and have the method extract that name.
    void printarray(String printstuff[], String arrayname) throws Exception
        String fileNM = "arrayprint_" + arrayname +".txt";
        FileWriter printme = new FileWriter(fileNM);
        String newline = System.getProperty("line.separator");
            String tab = "\t";
        for (int i = 0; i<printstuff.length; i++)
            printme.write(i + tab + printstuff[i]  + newline);
        printme.close();
        } // end printarray

    Let me try to put this in different words and see if I convince you...
    I think you are getting confused between variable names that you use refer a variable within your class and "names" that you associate with a variable based on the data it holds.... In your example
    String[] myArray;here 'myArray' is the name of the reference to the variable printstuff[]. When you call the method
    printarray(myArray) a copy of this reference is passed to that method.
    But you also want to pass another variable that represents the description of the array (which you are referring to as the name). In this case one of the ways of doing this what you had pointed out which is
    printarray(myArray, "myArray");If you don't like this and think its inefficient you should do a bit of reading on the basics of what a variable is, what a reference to a variable etc. Alternativel you can define your own class that convinces you like
    public class MyArray
          private String[] myArray;
          private String myArrayName;
          public MyArray(String myArrayName, String[] myArray)
                      this.myArrayName=  myArrayName;
                      this.myArray = myArray;
          public String[] getArray()
                    return myArray;
          public String getName()
                      return myArrayName;
    }Edited by: deepak_1your.com on 17-Apr-2008 14:12

  • Accessing Private variable using reflection

    Is someone have code snippet for accessing private varaible using reflection
    Here is my code snipper
    import java.lang.reflect.Field;
    public class test1234 {
    private String t;
    public test1234() {
    public String show() {
    return t;
    import java.lang.reflect.Field;
    public class Test123 {
    public Test123() {
    public static void main(String[] args) {
    test1234 test12341 = new test1234();
    try {
    Class cls = test12341.getClass();
    Field fld = cls.getField("t");
    fld.set(test12341, "12");
    catch (Exception e) {
    System.out.println(e.getLocalizedMessage());
    I am getting exception when i try to access.
    java.lang.NoSuchFieldException
         at java.lang.Class.getField0(Native Method)
         at java.lang.Class.getField(Class.java:826)
         at Test123.main(Test123.java:24)
    Thanks in advance

    Thanks for your response. After setting accessible to true i can able to set into private variable.
    Thanks a lot.

  • How to get names of all used separations?

    Hi there
    How can I get the names of all used color-separations with javascipt?
    CMYK and used spot-colors.
    I want to place them into a textbox in illustrator (CS4) with a script.
    Does anybody can help me??
    thanks a million

    List of inks can be obtained from Document.inkList and iterate through each ink to find whether InkInfo.printingStatus is set to "ENABLEINK"
    here is the script
    mydoc = app.activeDocument;
    mydocTotalInkList = mydoc.inkList
    mydocUsedInkList = new Array ();
    j =0;
    for (i=0;i<mydocTotalInkList.length;i++)
        if(mydocTotalInkList[i].inkInfo.printingStatus=="InkPrintStatus.ENABLEINK")
           mydocUsedInkList[j] = mydocTotalInkList[i].name;
           j++;

  • Getting oracle environment variables using plsql code

    Hi Geeks,
    Can anyone tell me how to get an Oracle environment variable (eg db_cache_size) from inside a plsql block of code or through a sql query?
    Thanks,
    Prabhu

    Is it possible to update the values via SQL?That's indicated by:
    ISSES_MODIFIABLE VARCHAR2(5) Indicates whether the parameter can be changed with ALTER SESSION (TRUE) or not (FALSE)
    ISSYS_MODIFIABLE VARCHAR2(9) Indicates whether the parameter can be changed with ALTER SYSTEM and when the change takes effect:
    See the docs:
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2012.htm#REFRN30176

  • Problem during dynamic casting (using reflection)

    Hi Guys,
    Need you help
    Situation is like this �.I have a function which accept the Sting parameter
    Which is actually a full name of class �.using reflection I created the class and object
    Now I want to cast this newly created object to their original class type
    Code is somehow like this
    Public void checkThis (String name) throws Exception{
    Class c = Class.forName(name.trim());
    Object o = c.newInstance();     
    System.out.println(" class name = " + c.getName());
    throw ()o; //// here I want to cast this object to their orginal class type
    I tried throw (c.getName())o;
    But it is not working
    }

    You can't cast to an unknown type like that. You're trying to throw the object, which makes me believe you're loading and instantiating some Exception or other, right? Just cast the result to something generic, like Exception, or RuntimeException, or maybe Throwable. As long as the class you load actually is a subclass of whichever you choose, you'll be fine. And if it isn't, you've got problems anyway because you can't throw anything that isn't Throwable

  • How can i get all java class names from a package using reflection?

    hi,
    can i get all classes name from a package using reflection or any other way?
    If possible plz give the code with example.

    You can't, because the package doesn't have to be on the local machine. It could be ANYWHERE.
    For example, via a URLClassLoader (ie from the internet) I could load a class called:
    com.paperstack.NobodyExpectsTheSpanishInquisitionI haven't written it yet. But I might tomorrow. How are you going to determine if that class is in the package?
    This subject comes up a lot. If you want to do something a bit like what you're asking for (but not quite) there are plenty of threads on the subject. Use google and/or the forum search facility to find them.
    But the answer to your question, as you asked it, is "you can't do that".

  • How can I use evaluate to get the instance variable in customized tag

    1.
    At first , I create a class called bean,and declared several params in it and do not define any getter function for the param.
    class bean{
    String param = "test";
    SomeClass scObj = new SomeClass();
    2.
    The second ,I use
    request.setAttribute("beanObj",new bean());
    3.
    And then I wanna use the customized tag to show a text box , then initialize it's value.
    <salt:text name="param" value="beanObj.param">
    <salt:text name="obj" value="beanObj.scObj.func()">
    4.
    I tried the evaluator provided by JexlContext ,Struts, JSTL and it seems that if I do not define the getter for the variable ,I can not get the bean's instance variable's value.
    Expression e = ExpressionFactory.createExpression( value );
    JexlContext jc = JexlHelper.createContext();
    jc.getVars().put(strInitBeanName, request.getAttribute("beanObj"));
    Object obj = e.evaluate(jc);
    the result of the obj is null....
    Can anybody recommand some other evaluator can get the value of a instance variable from an object?

    do you have any other suggestion ? Nops, somebody else may have though. AFAIK, all lookups of the type
    beanName.propertyNameuse reflection on the getXXX() methods to access the property.
    Having said that, I guess you could write one though in a custom tag, using the same - reflection (you will ahve to rely on the java.lang.reflect.Field class quite heavily) - but that would be reinventing the wheel for most other functionality that you would have to include (like looking up the bean in scope etc)
    cheers,
    ram.

  • How to get a field that using variable in order to create a query

    Hi,
    I found a difficulty when creating a query. so, I would like to ask you some question.
    1. How to get a field that using variable which that field I want to put it in my query?
    For example, I would like to take quantity field in inventory audit report. And when I put my cursor in
    quantity field, there was only variable, item, etc. How to get this and put it in query?
    2. How to combined the invoice quantity with inventory audit report quantity?
    3. I have a query like this:
    SELECT distinct T0.[DocDate] as 'Tanggal', T0.[DocNum] as 'No.Faktur', T1.[ItemCode] as 'Kode Barang',
    T1.[Dscription] as 'Deskripsi', T1.[Quantity] as 'Quantity', ((T1.[LineTotal])/(T1.[Quantity])) as 'Harga
    Satuan', T1.[LineTotal] as 'Harga Total', T3.[CalcPrice] as 'HPP Satuan', ((T3.[CalcPrice]) * (T1.
    [Quantity])) as 'HPP Total', T4.[ItmsGrpNam] as 'Jenis Barang', T5.[SlpName] as 'Nama Sales', T1.
    [WhsCode] as 'Kode Gudang' FROM [dbo].[OINV] T0 INNER JOIN [dbo].[INV1] T1 ON T0.DocEntry =
    T1.DocEntry INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode INNER JOIN OINM T3 ON T2.ItemCode
    = T3.ItemCode INNER JOIN OITB T4 ON T2.ItmsGrpCod = T4.ItmsGrpCod INNER JOIN OSLP T5 ON
    T0.SlpCode = T5.SlpCode WHERE T3.[TransType] = '13' and T3.[CreatedBy] = T1.[DocEntry] and T0.
    [DocDate] >=[%0] and T0.[DocDate] <=[%1] and T4.[ItmsGrpNam] =[%2] and T1.[WhsCode] =[%3]
    Is it possible if I just take one invoice with invoice quantity and only show up at once although I have a
    lot item cost for that item? (because I'm using FIFOmethod).
    Please help me.. cause I'm stuck with this thing :l.
    Thank you very much, and I'm waiting your respon soon.
    Regards,
    Sisca

    Try this one:
    SELECT distinct T0.DocDate as 'Tanggal', T0.DocNum as 'No.Faktur', T1.ItemCode as 'Kode Barang',
    T1.Dscription as 'Deskripsi', T1.Quantity as 'Quantity', ((T1.LineTotal)/(T1.Quantity)) as 'Harga
    Satuan', T1.LineTotal as 'Harga Total', T3.CalcPrice as 'HPP Satuan', ((T3.CalcPrice) * (T1.
    Quantity)) as 'HPP Total', T4.ItmsGrpNam as 'Jenis Barang', T5.SlpName as 'Nama Sales', T1.
    WhsCode as 'Kode Gudang'
    FROM dbo.OINV T0 INNER JOIN dbo.INV1 T1 ON T0.DocEntry =T1.DocEntry
    INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode
    INNER JOIN OINM T3 ON T2.ItemCode = T3.ItemCode AND T3.TransType = '13' and T3.CreatedBy = T1.DocEntry AND T3.Warehouse = T1.WhsCode
    INNER JOIN OITB T4 ON T2.ItmsGrpCod = T4.ItmsGrpCod
    INNER JOIN OSLP T5 ON T0.SlpCode = T5.SlpCode
    WHERE T0.DocDate >=[%0\] and T0.DocDate <=[%1\] and T4.ItmsGrpNam =[%2\] and T1.WhsCode =[%3\]
    Thanks,
    Gordon

  • Variable in ''Name of Variable(Input Only Using F4).' for variant attribute

    Hi All,
    I Have a small problem with saving variant.
    I am trying to save the Variant.In the varaint Attributes we have a field 'Name of Variable(Input Only Using F4).
    I  have created the PID 'XUS' in SU3.But i am not able to to view the variable in ''Name of Variable(Input Only Using F4).'.
    Anybody please let me know how to make it.
    Thanks,

    Please follow the below steps to restrict the user to access 2 company codes,
    1)Mark the IO(Company code) Authorization relavent and activate it.In the IO Business Explorer tab check the Authorization relavent check box.
    2)Go to T-code RSECADMIN -Under Maintainance -Enter the name of Authorization Object an click on create Authorization.Insert the IO and also SAP recomended Objects 1.0TCAACTVT, 2.0TCAIPROV and 3.0TCAVALID.
    Maintain the values for these objects.Select the company code and click on details.
    3)T-code RSU01-Enter the name of the user to be assigned with the authorization object and click the change button.The select the relevant authorization object and save.
    4)Create Authorisation Variable in Query Designer Create an Authorization Variable - Variable with Processing by Authorisation in Query Designer as Below for Sales Organisation
    Note : Also include all Authorisation Relevant Objects which are used in that infoprovider in addition to the above additional 3 objects otherwise you may get "No Authorisation" error when you execute the query.
    Note : 0BI_ALL is the authorization object to access all the info objects which are   authorization relevant.
    Reagrds,
    Ramitha

  • Using reflection to get method body

    Hi,
    I'm just getting into this side of program and while I understand the use of reflection in oredr to obtain the constructor and method, parameters, fields etc I was wondering if its possible to grab the method body and copy it into a string.
    So for example in the following class...
    class MyClass
    private String str;
    MyClass(){}
    public String MyMethod(String s)
    str=s;
    str=str+" was the String";
    System.out.println(str);
    return str;
    ...I need to capture just this code..
    str=s;
    str=str+" was the String";
    System.out.println(str);
    return str;
    ...as a string
    The reason i need to do this is that I'm programming a mechanism for storing objects and their methods using JDBC.. I could use object serialisation and store as a blob, but I'm wanting to store the attributes of a class as seperate parts so I can retrieve bits of code from the database at some later time.
    Thanks for any help you might give me
    peace
    neil

    You say that you are trying to store the method body
    into a database. This is to allow you to store an
    object and its methods into a database. Are you trying
    store the method text or its implementation (i.e class
    or java). If it is the implementation then just
    serialize the found method object using reflection.
    WHY are you doing this ?? what about private methods,
    class variables, class methods ???Hi, yes it is confusing to explain, but I'm experimenting with a new programming paradigm called AspectJ and I've only just got into Reflection. I'm creating a repository of Aspects (same as classes but with added functionality and some limitations) with JDBC and don't want to just serialise the object as a blob and so have created data tables to hold different parts of the anatomy of an Aspect and this was the only thing I was getting stuck on.
    The idea is that the user is able to recall these whole aspects (or a part of them such as a method) on the fly and use them in a program. I realise that ther will be problems because these methods may have other dependencies such as the ones you explain above but its just experimental at the moment and those are the kinds of things I'm wanting to find out more.
    I've seen examples of reflection for Objects but never for methods. So it is possible to capture just a method by serialisation using reflection? Any examples would be much appreciated.
    Peace
    Neil

  • Trying to delete file from trash but get this: The operation can't be completed because the item "File name" is in use. All other files delete except this one. Please help

    Trying to delete file from trash but get this: The operation can’t be completed because the item “File name” is in use. All other files delete except this one. Please help

    Maybe some help here:
    http://osxdaily.com/2012/07/19/force-empty-trash-in-mac-os-x-when-file-is-locked -or-in-use//

  • HT5624 Why in my email ( the one on my ipod5 that I use with my apple ID) when I get emails about my use of my apple ID to use a service in the from field it has my fathers name and when I click on it it shows his contact info ????

    Why in my email ( the one on my ipod5 that I use with my apple ID) when I get emails about my use of my apple ID to use a service in the from field it has my fathers name and when I click on it it shows his contact info ???? I also set up my apple ID with a new email account and also I signed up for iCloud but used the same apple I'd email and password but it gave me a I cloud email! I did activate the favorites in my email . Noticed the from field has my fathers name and contact and it is a notification about me using my apple ID to sign in to FaceTime! Something is messed up, not sure how or why???

    i didn't read a lot of your 2nd paragraph, but it seems like the password is the issue, right?
    do a true clean install
    reboot your machine and hold down command+option+r, you should see a spinning globe - if you don't see the globe or anything that reads internet recovery, shut down and try again
    at menu, chose disk utility and once there, find your HD on the left side, select the physical name and erase it as mac journaled
    exit disk utlity
    at menu, choose install OSX
    this time, when it asks for a password just hit continue, it will let you complete without a password
    you should be able to get into your laptop, now figure out what password you'll be able to use with your kb issue

  • How to get table and column names thats being used in SQL , that's generating all my reports on SSRS.

    Good day,
    I searched through the forum and cant find anything.
    I have around 300 published reports on SSRS and we are busy migrating to a new system.
    They have already setup their tables on the new system and I need to provide them with a list of table names and column names that are being used currently to generate the 300 reports on SSRS.
    We use various tables and databases to generate these reports, and will take me forever to go through each query to get this info.
    Is it at all possible to write a query in SQL 2008 that will give me all the table names and columns being used?
    Your assistance is greatly appreciated.
    I thank you.
    Andre.

    There's no straightforward method for that I guess. There are couple of things you can use to get these details
    1. query the ReportServer.dbo.Catalog table
    for getting details
    you may use script below for that
    http://gallery.technet.microsoft.com/scriptcenter/42440a6b-c5b1-4acc-9632-d608d1c40a5c
    2. Another method is to run the reports and run sql profiler trace on background to retrieve queries used.
    But in some of these cases the report might be using a procedure and you will get only procedure. Then its upto you to get the other details from procedure like tables used, columns etc
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

  • Table name to find a variable used in which queries

    Hello,
    what is table name to find a particular variable used in which queries.

      write 'Variable Name:'.
      write vname.
      write /.
      write 'Variable Type:'.
      write variabletype.
      write /.
      write 'Based on Infoobject:'.
      write variobj.
      write /.
      write 'Variable Processing Type:'.
      write varprocesstyp.
      write /.
      write 'Variable Select Parameters:'.
      write varselectiontyp.
      write /.
      write 'Variable Ready for Input:'.
      write varinputtyp.
      write /.
      write 'Variable Entry criteria:'.
      write varentrytyp.
      write /.
      write 'Variable can be changed during navigation:'.
      write varchangeable.
      write /.
    *  write
    Select single varuniid from rszglobv into varid where vnam = p_varnm.
    select single TXTLG from RSZELTTXT into variabledescription where ELTUID = varid and OBJVERS = 'A'.
    write 'Variable Description:'.
    write variabledescription.
    write /.
    write /.
    querydet-querytechname = 'Query Technical Name'.
    querydet-querydesc = 'Query Description'.
    write querydet-querytechname.
    write querydet-querydesc.
    write /.
    Select SELTUID from RSZELTXREF into table queryuid where TELTUID = varid and laytp = 'VAR' and OBJVERS = 'A'.
    loop at queryuid into querydets.
    select single compID from rszcompdir into querydet-querytechname where COMPUID = querydets-queryid and OBJVERS = 'A'.
    select single txtlg from RSZELTTXT into querydet-querydesc where ELTUID = querydets-queryid and objvers = 'A'.
      write querydet-querytechname.
      write querydet-querydesc.
      write /.
    *update querydet from querydetail.
    endloop.
    write 'Query View Details for affected queries'.
    write /.
    viewtab-viewtechname = 'View Technical Name'.
    viewdesc = 'View Description'.
    write viewtab-viewtechname.
    write viewdesc.
    write /.
    clear viewtab.
    clear viewdesc.
    loop at queryuid into querydets.
    select single compID from rszcompdir into querydet-querytechname where COMPUID = querydets-queryid and OBJVERS = 'A'.
    select viewid from rszwview into table viewtab where compid = querydet-querytechname and objvers = 'A'.
    loop at viewtab into viewdetails.
      select single TXTLG from RSZWOBJTXT into viewdesc where objid = viewdetails-viewtechname.
        write viewdetails-viewtechname.
        write viewdesc.
        write /.
       endloop.
      endloop.

Maybe you are looking for

  • How to create a group mailing list in JavaMail?

    Hello, I've been searching through the entire API, specifically the InternetAddress class and I can't seem to find out how to create a group/mailing list. Does anyone know how to do this? That is, I would like to be able to group a bunch of e-mail ad

  • VPN-Client V 5.0 under Windows Vista Home Premium - Error for Installation

    Hello I hope you can help me. During installating the VPN-Client I recieve the Error 1609: Users ist not a unser... One message says that I creat new usergroups. Unfortunately this ist not possible under Vista Home Premium. Is there a solution, how I

  • Help with Datatip Not showing on 2 different charts at the same time

    What's up guys?  I am building a massive application and came across an issue. I was able to create a smaller flex application that recreate the problem. Basically its about the datatip. Let's say you have a Main application with tab navigation that

  • "Segmentation fault" during tns rman active duplicate

    Hello. I am trying to do an active duplicate using tns connectivity and just after restoring the controlfile the process fails with the error "Segmentation fault". However if I start the rman using Ezconnect everything goes smoothly. Restarting the d

  • IWeb '08 blog links

    Hi, I've made a iWeb blog and I am noticing my links acting funny and I have found no way to control them. If you go here: http://www.jenniferfragale.com/jf/photo_blog/Archive.html you can see that the names of the entries are light gray. When you si