导航:首页 > 编程语言 > java反射获取方法名

java反射获取方法名

发布时间:2023-06-18 21:59:46

① 说说对java反射的理解,使用反射如何获取一个类的所有方法,使用反射需要注意哪些问题

反射说白了就是可以获得一个类的所有信息,主要包括方法和属性两部分。
1.获得方法包括获得方法的名称,方法的返回类型,方法的访问修饰符,以及通过反射执行这个方法。
2.获得属性包括属性的名称,类型,访问修饰符,以及这个属性的值。
这些获得都有相应的API提供操作。

举个例子:
先定义一个类,有age这个属性,以及age的get和set方法:

public class TestRflectionFather {
public int age =32;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

然后操作获得所有方法:

import java.lang.reflect.Method;
public class Testmain {
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("TestRflectionFather");
Method[] methods =clazz.getDeclaredMethods();
for(Method me:methods)
{
System.out.println(me.getName());
}
}

}

//最后输出
getAge
setAge

② java中反射的三种方法是

第一种:通过forName()方法;

第二种:类.class;

第三种:对象.getClass()。

举例如下:

package
test;

public class Demo{

public static void
main(){

Class<?> c1 = null;

Class<?> c2 =
null;

Class<?> c3 =
null;

//三种反射用实例化方式

try{

//最常用的一种形式

c1 =
Class.forName("test.X");

}catch(ClassNotFoundException
e){

e.printStackTrace();

}

//通过Object类中的方法实例化

c2
= new X().getClass();

//通过类.class实例化

c3 =
X.class;

System.out.println("类名:" + c1.getName());
//得到类名

System.out.println("类名:" + c2.getName());
//得到类名

System.out.println("类名:" + c3.getName());
//得到类名

}

}

③ Java如何获取方法参数中的名称

一、从注解中获取
使用注解方式,我们需要自定义一个注解,在注解中指定参数名,然后通过反射机制,获取方法参数上的注解,从而获取到相应的注解信息。这里自定义的注解是Param,通过value参数指定参数名,定义了一个工具类ParameterNameUtils来获取指定方法的参数名列表,这里获取测试类ParameterNameTest中定义的方法method1的参数名列表表,下面是具体的代码。

④ Java反射机制获取set()方法 并且为set()方法传值

Class.getDeclaredMethod()
是获取这个类中所有的方法,返回的是Method[]
如果有参数,第1个是方法名称,第2个是该方法的所有参数数组,这样返回的是Method这个对象
Method.invoke()
传入调用方法的类,另一个是调用这个方法所需要的参数,如果该方法没有参数,可以不填写,在JDK1,4之前,第2个参数是传入一个数组的,但是在jdk1.5之后,可以不传数组,多个参数用逗号隔开

不知道你听明白没

⑤ 在JAVA中,怎么利用反射获取一个方法

java的反射用法:(异常请自行处理)

①找到类:Class cl = Class.forName("java.util.Date");

②创建对象(要求这个类中含有空参数的构造方法):Object obj = cl.newInstence();

③根据名称和参数找方法:Method method1 = cl.getMethod("getTime");//如果没有参数不用写第二个参数如果有参数的如:Method method2 = cl.getMethod("setTime",long.class);

④在某个对象上面执行方法,Object result = method1.invoke(obj);//如果有参数的Object result = method2.invoke(obj,21317362721);

执行的方如果有返回值,将返回值返回,否则返回null

⑥ 如何利用java反射顺序的从一个java类中得到其中定义的成员变量名或者方法

for (int i = 0; i < fields.length; i++) {
Field field = fields[i];

String fieldName = field.getName();
System.out.println("name====="+fieldName);
String firstLetter = fieldName.substring(0, 1).toUpperCase();
// 获得和属性对应的getXXX()方法的名字
String getMethodName = "get" + firstLetter + fieldName.substring(1);

// 获得和属性对应的getXXX()方法
Method getMethod = classType.getMethod(getMethodName, new Class[]{});

// 调用原对象的getXXX()方法
Object value = getMethod.invoke(object, new Object[]{});
System.out.println("value===="+value);
}

⑦ java反射获取方法不定参数的名称和类型

(Object...objects){
for(Objectobj:objects){
Classclz=obj.getClass();
System.out.println(clz);
}
returnfalse;
}

阅读全文

与java反射获取方法名相关的资料

热点内容
吃鸡怎么解压最快 浏览:966
linux网络编程基础 浏览:217
产研是程序员吗 浏览:592
程序员的法律 浏览:967
编程第四关用冰雪火焰闪现通关 浏览:754
批处理当前文件夹参数 浏览:183
鸿蒙安卓如何下载 浏览:902
开3389命令 浏览:540
程序员大都单纯吗 浏览:913
APP如何实现下载功能 浏览:214
通达信源码怎样放到桌面 浏览:643
程序员的脑袋会秃吗 浏览:453
为什么eve登录启动不进去服务器 浏览:270
微信招生app哪个好用 浏览:233
宝可梦剑盾启动文件在哪个文件夹 浏览:765
压缩机比容 浏览:117
python自动化测试面试 浏览:949
买便宜点的鞋子去哪个app买 浏览:890
android中个人页面 浏览:711
程序员那么可爱逸城前女友 浏览:577