当前位置:首页 » 编程语言 » java反射类方法

java反射类方法

发布时间: 2024-01-26 22:42:46

java反射的几个工具方法

//第一种方式获取Class对象

Studentstu1=newStudent();//这一new产生一个Student对象,一个Class对象。
ClassstuClass=stu1.getClass();//获取Class对象
System.out.println(stuClass.getName());

//第二种方式获取Class对象

ClassstuClass2=Student.class;
System.out.println(stuClass==stuClass2);//判断第一种方式获取的Class对象和第二种方式获取的是否是同一个

//第三种方式获取Class对象

try{
ClassstuClass3=Class.forName("fanshe.Student");//注意此字符串必须是真实路径,就是带包名的类路径,包名.类名
System.out.println(stuClass3==stuClass2);//判断三种方式是否获取的是同一个Class对象
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}

❷ 关于用java反射调用一个类里面的方法并执行

Java中要用到反射,首先就必须要获取到对应的class对象,在Java中有三种方法获取类对应的class对象。

1、通过类的.class属性

2、通过类实例的getClass()方法获取

3、通过Class.forName(String className)方法获取

现在比如在package下有个类Calculator

publicclassCalculator{	

publicdoubleadd(doublescore1,doublescore2){
returnscore1+score2;
}

publicvoidprint(){
System.out.println("OK");
}

publicstaticdoublemul(doublescore1,doublescore2){
returnscore1*score2;
}
}
publicclassCalculatorTest{

publicstaticvoidmain(String[]args)throwsException{
//通过类的.class属性获取
Class<Calculator>clz=Calculator.class;
//或者通过类的完整路径获取,这个方法由于不能确定传入的路径是否正确,这个方法会抛ClassNotFoundException
// Class<Calculator>clz=Class.forName("test.Calculator");
//或者new一个实例,然后通过实例的getClass()方法获取
// Calculators=newCalculator();
// Class<Calculator>clz=s.getClass();
//1.获取类中带有方法签名的mul方法,getMethod第一个参数为方法名,第二个参数为mul的参数类型数组
Methodmethod=clz.getMethod("mul",newClass[]{double.class,double.class});
//invoke方法的第一个参数是被调用的对象,这里是静态方法故为null,第二个参数为给将被调用的方法传入的参数
Objectresult=method.invoke(null,newObject[]{2.0,2.5});
//如果方法mul是私有的private方法,按照上面的方法去调用则会产生异常NoSuchMethodException,这时必须改变其访问属性
//method.setAccessible(true);//私有的方法通过发射可以修改其访问权限
System.out.println(result);//结果为5.0
//2.获取类中的非静态方法
Methodmethod_2=clz.getMethod("add",newClass[]{double.class,double.class});
//这是实例方法必须在一个对象上执行
Objectresult_2=method_2.invoke(newCalculator(),newObject[]{2.0,2.5});
System.out.println(result_2);//4.5
//3.获取没有方法签名的方法print
Methodmethod_3=clz.getMethod("print",newClass[]{});
Objectresult_3=method_3.invoke(newCalculator(),null);//result_3为null,该方法不返回结果
}
}

❸ java反射最常用的几个方法

下面给你介绍Java反射常用的2种方法:

  1. 获取javaBean的属性

❹ 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());
//得到类名

}

}

热点内容
龙村m脚本 发布:2024-11-29 17:38:10 浏览:781
linuxc配置文件 发布:2024-11-29 17:08:31 浏览:826
wow刷碎片脚本 发布:2024-11-29 15:58:24 浏览:591
明小子源码 发布:2024-11-29 15:15:30 浏览:144
苹果8plus什么配置 发布:2024-11-29 14:16:36 浏览:677
androidmvp结构 发布:2024-11-29 14:16:34 浏览:536
androidsqlite命令 发布:2024-11-29 14:04:38 浏览:156
信用卡分期算法 发布:2024-11-29 13:50:56 浏览:808
安卓手机dll文件为什么打不开 发布:2024-11-29 13:40:49 浏览:1003
百分之五十石碳酸怎么配置 发布:2024-11-29 13:38:56 浏览:974