刚刚学到了反射,感觉反射的功能好强大,所以想写篇博客记录下自己的学习成果。

利用反射来创建对象。

Class c1=Class.forName("test.Person");//通过类名来创建类,这里test.person只是一个类名,。这个person类代码在//本文最下方

/**
*情况1:调用无参的构造方法来创建对象
*/
Person p=c1.newInstance();//这样就创建好了 /**
*情况2:调用有参构造方法
*/
Constructor cs=c1.getConstructor(String.class,int.class);//括号里面写的是构造方法的参数类型的类化,也就是后面加.class就好了
Person p=(Person) cs.newInstance("张三",22);//调用构造方法生成对象

利用反射来设置私有属性

    try {
Class clazz=Class.forName("testPerson");
Person p=(Person) clazz.newInstance();
Field f1=clazz.getDeclaredField("name");
f1.setAccessible(true);//设置是否可以操作私有属性
f1.set(p, "wfadf");
System.out.println(f1.get(p));
} catch (Exception e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}

Person类代码

package test;

public class Person {
private String name;
private int age; public Person() { } public Person(String name, int age) { this.name = name;
this.age = age;
} public String getName() {
return name;
}
/*
public void setName(String name) {
this.name = name;
}*/ public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} }

java中的反射,知道类名创建类,还可以设置私有属性的值的更多相关文章

  1. C#用反射实现两个类的对象之间相同属性的值的复制

    在进行实体转换操作的时候如果需要在对两个实体之间两个属性字段差不多相同的类要进行一个互相的转换,我们要把a对象的所有字段的值都复制给b对象,我们只能用b.属性=a.属性来写,如果属性字段太多的话,就要 ...

  2. C# 利用反射根据类名创建类的实例对象

    “反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): ...

  3. C# 反射 通过类名创建类实例

    “反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): ...

  4. 【转】C# 利用反射根据类名创建类的实例对象

    原文地址:https://www.cnblogs.com/feiyuhuo/p/5793606.html “反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System ...

  5. [转]C#利用反射实现两个类的对象之间相同属性的值的复制

    本文转自:https://blog.csdn.net/u013093547/article/details/53584591 在使用c#进行程序编写时,会遇到一个问题,两个属性字段差不多相同的类要进行 ...

  6. C#利用反射实现两个类的对象之间相同属性的值的复制

    http://blog.csdn.net/u013093547/article/details/53584591 今天在拷贝对象的时候,看着代码实在是有点烦,一堆一样的代码,还是找找有没有直接反射拷贝 ...

  7. java中使用反射做一个工具类,来为指定类中的成员变量进行赋值操作,使用与多个类对象的成员变量的赋值。

    //------------------------------------------------我是代码的分割线 // 首选是一个工具类,在该工具类里面,定义了一个方法,public void s ...

  8. java中使用反射获取pojo(实体)类的全部字段值

    说起反射.不得不说它实在是太强大了,通过反射就能够轻轻松松拿到各种东东,假设你想在项目中解除对某个类的依赖,能够考虑用反射. 今天跟大家分享的是通过java中的反射,获取pojo类的全部字段值. 为什 ...

  9. java中使用反射获取pojo(实体)类的所有字段值

    出处:https://developer.aliyun.com/article/239346 说起反射,不得不说它实在是太强大了,通过反射就可以轻轻松松拿到各种东东,如果你想在项目中解除对某个类的依赖 ...

随机推荐

  1. HTML5与CSS3经典代码

    1)全屏背景 body { background: url(../img/pic.jpg) no-repeat center center fixed; background-size: cover; ...

  2. 将word文件快速转换成表格的技巧

    最近烦心事还真是很多,世界买家网最近就遇到了很多烦心事. 从www.buyerinfo.biz网站中的数据导出为csv格式的文件,我导出了buyer的数据,那怎么把它制作成表格呢? 找了下,发现还是比 ...

  3. js对象的深度克隆

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. C语言的编译过程、安装gcc编译器以及设置环境变量

    以我对C语言编译过程的了解,我用了一点时间画了一个图,提供给大家参考一下,希望有些能对您的问题提上帮助. 前几天刚初步学习了C语言的编译过程,感触挺深的.在C语言中头文件其实起了一个很大的作用. 1. ...

  5. Python的平凡之路(17)

    一.认识jQuery       jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设 ...

  6. Outlook不能预览和打开Excel文件:

    无法打开Outlook邮箱中的Excel附件,确实让人恼火 先不要着急: 1.在开始->运行,输入"regedit" 2.找到路径:HKEY_CURRENT_USER\Sof ...

  7. 基于Bayes和KNN的newsgroup 18828文本分类器的Python实现

    向@yangliuy大牛学习NLP,这篇博客是数据挖掘-基于贝叶斯算法及KNN算法的newsgroup18828文本分类器的JAVA实现(上)的Python实现.入门为主,没有太多自己的东西. 1. ...

  8. wireshark流跟踪和分析

  9. LeetCode 20 -- Valid Parentheses

    Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...

  10. UE4 创建进程,打开额外程序 方法 笔记

    FPlatformProcess::CreateProc(TEXT("程序路径");