用java的反射机制怎么获取一个类中里面方法中局部变量

用java的反射机制怎么获取一个类中里面方法中局部变量,第1张

public class Person {

    private String name;

    private int age;

    public String getName() {

        return name;

    }

    public void setName(String name) {

        thisname = name;

    }

    public int getAge() {

        return age;

    }

    public void setAge(int age) {

        thisage = age;

    }

    public static void main(String[] args) {

        try {

            Class c = ClassforName(PersonclassgetName());

            //获取类的属性

            Field[] fields = cgetDeclaredFields();

            for (int i = 0; i < fieldslength; i++) {

                Systemoutprintln("类的属性有:"+ ModifiertoString(fields[i]getModifiers())+"   "+fields[i]getType()+"    "+fields[i]getName());

            }

            //获取类的方法

            Method[] methods= cgetMethods();

            for (int j = 0; j <methodslength ; j++) {

                Systemoutprintln("类的方法有:"+ModifiertoString(methods[j]getModifiers())+"   "+methods[j]getReturnType()+"  "+methods[j]getName());

            }

        } catch (ClassNotFoundException e) {

            eprintStackTrace();

        }

    }

}

//运行结果如下:

类的属性有:private   class javalangString    name

类的属性有:private   int    age

类的方法有:public static   void  main

类的方法有:public   class javalangString  getName

类的方法有:public   void  setName

类的方法有:public   void  setAge

类的方法有:public   int  getAge

类的方法有:public final   void  wait

类的方法有:public final   void  wait

类的方法有:public final native   void  wait

类的方法有:public   boolean  equals

类的方法有:public   class javalangString  toString

类的方法有:public native   int  hashCode

类的方法有:public final native   class javalangClass  getClass

类的方法有:public final native   void  notify

类的方法有:public final native   void  notifyAll

调用类中的函数的变量,外面是无法直接调用的。

要调用的话:

1、设置返回值

2、直接在函数输出

前2点@xulinjie1214 已经回答了

3、全局变量

<php

$a=0;

class ab

{

function niya()

{

global $a;

$a=50+1;

}

}

$pp=new ab;

$pp->niya();

echo $a;

>

用typeof(var) 来返回一个数据类型\x0d\返回的可能值有\x0d\'undefined- 如果变量是 Undefined 类型的\x0d\'boolean- 如果变量是 Boolean 类型的\x0d\'number- 如果变量是 Number 类型的\x0d\'string- 如果变量是 String 类型的\x0d\'object- 如果变量是一种引用类型或 Null 类型的\x0d\\x0d\if(typeof(123)=='number')alert('this is a number')\x0d\以此类推

效力是做好工作的魂灵 在上秦小麟教员的数据库实现技巧的时辰,教员提到了一个题目:如安在运行时获取一个变量的类型,这用C实现如同要大费周折。今天正好碰着一个题目想看看C&#43;&#43;STL中的sort算法的实现,发明里面有个技能可以很轻易做到这一点。我就立即本身做了一个实验。如下可以获取运行时变量的类型。人生一世不就是为了化短暂的事物为永远的吗?要做到这一步,就须懂得如何器重这短暂和永远。 此中间思惟就是,应用模板函数的重载,是什么类型的参数就去调用参数是那个类型的函数。如许就让编译器去本身辨认,而编译器当然知道每个变量的类型。这让我想去商量那些我经常用到的STL算法的实现,若是你也经常应用,何不借此机会好好研究一下呢?我感触感染至少有几个益处。1 加强对C&#43;&#43;说话的懂得2 加强法度的设计才能3 加强算法解析与设计的才能#include<iostream>using namespace std;void PrintType(int t){cout<<"int type";}void PrintType(char t){cout<<"char type";}void PrintType(long t){cout<<"long type";}template<typename T> inlinevoid ValueType(T t){PrintType(t);}int main(){int a;char c;ValueType(a);cout<<endl;ValueType(c);cout<<endl;return 0;} 上例的功能很轻易扩大,若是你向本身的项目添加了一个新的类型,那么只要重载一个PrintValue( )即可。这仅仅是输出变量的类型,若是你还想再获取变量的类型的时辰做更多的工作的话,显然也是很轻易做到的。比如你想先获取变量的类型,如许之后才干断定分派给变量几许空间,那么这个也可以轻松实现,只须要改变PrintValue的功能即可。这里可以写一个int PrintValue(YourType t) ,她甚至应当有一个更好的名字比如int Memory(Type t)。 在不改变函数名的同时对上述函数稍加批改就可以实现输出传入参数应当分派的内存大小。

有两种方法可以获得变量类型

方法一: 用VB6函数VarType(varname) ,这个函数返回一个整数,整数的含义见下表

举例

'定义变量

Dim IntVar, StrVar, DateVar

'初始化各个变量

IntVar = 459

StrVar = "Hello World"

DateVar = #2/12/69# 

Dim MyCheck As Integer 

MyCheck = VarType(IntVar)   'MyCheck = 2,即Interger类型

MyCheck = VarType(DateVar)  'MyCheck = 7,即Date类型

MyCheck = VarType(StrVar)   'MyCheck = 8,即String类型

方法二:用TypeName(varname)函数,返回变量类型的名称,返回值为字符串类型。

举例

Dim a

a = "abc"

DebugPrint TypeName(a)  '输出为 String

a = 100

DebugPrint TypeName(a)  '输出为 Integer

a = #6/27/2015#

DebugPrint TypeName(a)  '输出为 Date

以上就是关于用java的反射机制怎么获取一个类中里面方法中局部变量全部的内容,包括:用java的反射机制怎么获取一个类中里面方法中局部变量、php中,获取类里面函数的变量,的方法是、Javascript使用什么方法可以获得变量的数据类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9763783.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存