导航:首页 > 编程语言 > java反射类名

java反射类名

发布时间:2023-08-19 21:08:46

java反射 在只知道类名的情况下,怎样给其中的私有属性赋值

利用反射能

//假设类名为A
//实例化类
Ap=newA();
//获取class
Classc=p.getClass();
//获取该类所有的字段
Field[]fields=c.getDeclaredFields();
//遍历赋值
for(inti=0;i<fields.length;i++){
StringfiledName=fields[i].getName();
//AccessibleTest类中的成员变量为private,故必须进行此操作
fields[i].setAccessible(true);
//判断类型
Class<?>type=fields[i].getType();
//获取字段类型
StringtypeName=type.getName();
System.out.println(type.getName());

//对字段进行赋值第一个参数为对象引用第二个参数为要附的值

//如果为字符串类型
if("java.lang.String".equals(typeName)){
fields[i].set(p,"1");
}
//如果为日期类型
elseif("java.util.Date".equals(typeName)){
fields[i].set(p,newDate());
}
else{
fields[i].set(p,1);
}

}

//楼主我只是简单的写了下。可能还需要判断字段名称以及其他类型什么的。



最后希望楼主多看看java 文档。

Ⅱ java通过反射获取类的字段名称

简单的方法如下: Class<?> cls=Class.forName(className);////////////////////////通过类的名称反射类 Object obj=cls.newInstance();//////////////////////对象实例化 Field field=cls.getField(fieldName);/////这个对应的是属性 fieldValue=field.get(obj);////这个就是属性的值

Ⅲ JAVA中反射是什么

JAVA中反射是动态获取信息以及动态调用对象方法的一种反射机制。

Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。而这也是Java被视为动态语言的一个关键性质。

Java反射的功能是在运行时判断任意一个对象所属的类,在运行时构造任意一个类的对象,在运行时判断任意一个类所具有的成员变量和方法,在运行时调用任意一个对象的方法,生成动态代理。

(3)java反射类名扩展阅读:

JAVA中反射实例:

1、Class superClass=clazz.getSuperclass();//获取父类。

System.out.println("getSuperclass:"+superClass)。

2、Class[] interfaces=clazz.getInterfaces();//获取实现接口。

System.out.println("getInterfaces:"+interfaces.length)。

3、Constructor[] cons=clazz.getConstructors();//构造方法。

System.out.println("getConstructors:"+cons.length)。

参考资料来源:网络: JAVA反射机制

Ⅳ java如何通过反射获取包中所有的类

先通过IO,定位到这个包
通过File.list得到一个包含这个包下所有class的文件的数组。
循环这个数组,用包名拼接每一个遍历出来的文件的名字,得到每一个完整的类名(即,包名加类名)
通过class.forname反射得到每一个类实例

Ⅳ 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反射顺序的从一个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反射类名相关的资料

热点内容
脸部识别算法模型厂家 浏览:172
反编译的程序带注释吗 浏览:709
安装软件服务器未响应怎么解决 浏览:527
阀门开度单片机 浏览:566
python多线程有什么坑 浏览:679
程序员从互联网跳槽到银行里 浏览:242
百度网盘资源解压后暂不支持在线 浏览:220
android自动化环境 浏览:253
androidrealm加密 浏览:513
地图正在解压缩是什么意思 浏览:217
电脑软件能放在文件夹吗 浏览:786
uc服务器怎么打开 浏览:363
net怎么编译 浏览:244
我的世界187服务器地址ip 浏览:955
拍卖房价的算法 浏览:440
linux内核编译视频教程 浏览:883
程序员厚黑 浏览:210
如何在闲鱼淘二手安卓机 浏览:177
怎么下载晨星app 浏览:135
两台服务器如何同步内容 浏览:810