java反射1--产生Class类的实例化对象三个方法

首先每一个类在实例化的时候都会产生一个.class文件。而Class对象既是将.class文件读入内存时,为它创建一个Class对象。

反射就是对Class对象进行操作。

 1 package reflect.vo;
 2
 3 /**
 4  * @author guohao
 5  * java测试类Student
 6  */
 7 public class Student {
 8     private String name;
 9     private int age;
10     private float score;
11
12     public Student() {
13     }
14
15     public String getName() {
16         return name;
17     }
18
19     public void setName(String name) {
20         this.name = name;
21     }
22
23     public int getAge() {
24         return age;
25     }
26
27     public void setAge(int age) {
28         this.age = age;
29     }
30
31     public float getScore() {
32         return score;
33     }
34
35     public void setScore(float score) {
36         this.score = score;
37     }
38
39 }

1.Object 类提供一个返回Class类对象的方法getClass()

 1 package reflect.vo;
 2 public class test {
 3
 4  public static void main(String[] args) throws Exception {
 5
 6         Student stu = new Student();//这一new 产生一个Student对象,一个Class对象。
 7         Class cls = stu.getClass();//获取Class对象
 8         System.out.println(cls.getName());
 9
10  }

2.利用“类.class”取得

1 package reflect.vo;
2
3 public class test {
4
5     public static void main(String[] args) throws Exception {
6         Class cls = Student.class;
7         System.out.println(cls);
8     }
9 }

3.利用Class类的static方法取得 Class.forName(); 

 1 package reflect.vo;
 2
 3 public class test {
 4
 5     public static void main(String[] args) throws Exception {
 6         Class<?> cls = Class.forName("reflect.vo.Student");
 7         System.out.println(cls);
 9     }
10 }

三种方式常用第三种,第一种对象都有了还要反射干什么。

第二种需要导入类的包,依赖太强,不导包就抛编译错误。

一般都第三种,一个字符串可以传入也可写在配置文件中等多种方法。

注:最后一句话引用自  https://blog.csdn.net/sinat_38259539/article/details/71799078

 

原文地址:https://www.cnblogs.com/guohao134/p/9181363.html

时间: 2024-11-05 14:54:09

java反射1--产生Class类的实例化对象三个方法的相关文章

Java反射机制(Class类的使用)

1:通过无参构造实例化对象 package cn.itcast; /* * 通过无参构造实例化对象 * 通过Class类本身实例化对象,使用newInstance方法 * 需要注意的是:实例化类中存在一个无参构造的方法,如果不存在将无法实例化Person对象: * 如果没有则报异常:InstantionException * */ public class ClassDemo03 { public static void main(String[] args) { //创建Class对象 Cla

java反射机制取出model类的所有变量,以及value

原文:java反射机制取出model类的所有变量,以及value 源代码下载地址:http://www.zuidaima.com/share/1550463649270784.htm 工作上遇到个问题,顺便解决了,希望对大家有帮助 package com.zuidaima.util; public static void main(String[] args) throws ClassNotFoundException, IllegalArgumentException, IllegalAcce

C++类的实例化对象的大小之sizeof()

之所以写这篇<C++类的实例化对象的大小之sizeof()>,是因为在参加笔试的时候遇到如下这么一道题,当时感觉就是这个一个坑,但,我还是义无反顾的跳了下去,因为存在知识点盲区啊.现,总结一下,你不知道的C++类的实例化对象的大小之sizeof(). class D { public: D() { } virtual ~D() { } private: int a ; char *p; }; 实例一: class A { }; A a; cout << sizeof(a) <

C++类的实例化的两种方法

C++ 类的实例化有两种方法: 直接定义对象: 先定义一个类: class A { public: A(); virtual ~A(); ... ... }; 类实现略. 用的时候: A a; a. 成员函数: a. 成员变量: a 就是一个对象. 定义一个类指针的方法: A *p = new A; p->成员函数: p->成员变量: 最后别忘了销毁对象:delete[] a;  A由系统创建并释放,你不要担心会出现内存泄露,但是生命期只有在本区域的大括号内,出了大括号就没用了.p是指针,要自

Java项目中每一个类都可以有一个main方法

Java项目中每一个类都可以有一个main方法,但只有一个main方法会被执行,其他main方法可以对类进行单元测试. public class StaticTest { public static void main(String[] args) { Employee[] staff=new Employee[3]; staff[0]=new Employee("Tom",40000); staff[1]=new Employee("Dick",60000); s

面向对象-类与实例化对象

类: 一系列对象相似特征与技能的结合体 注:站在不同角度,分类不一样 在现实世界中:一定先有对象,再有类 在程序中:一定需先有类,再有对象 定义类并实例化对象: #定义类 class LuffyStudent: school='luffycity' def learn(self): print('is learning') def eat(self): print('is eating') def sleep(self): print('is sleeping') #实例化对象 stu1=Luf

如何防止JAVA反射对单例类的攻击?

加静态标志位,构造方法通过synchronized修饰.或者枚举 举例1:不经过处理的单例类被JAVA反射机制攻击 Singleton.java    代码清单[1.1] 1 public class Singleton 2 { 3 private static boolean flag = true; 4 private static final Singleton INSTANCE = new Singleton(); 5 6 private Singleton() 7 { 8 } 9 10

波哥学JAVA,定义类 创建对象 实例化对象 属性 类调用属性或者方法

定义类 声明对象  创建对象 实例化对象 属性 对象调用属性或者方法 举例,下面定义类了一个类并声明属性,写了一个方法: 创建对象 实例化对象 属性 类调用属性或者方法

Java反射xml数据到类中

我们做自动化测试时,会遇到使用xml存储数据,但是这些数据可以封装成一个类,进行数据的传递.以下通过一个实际的例子,展示给大家,请欣赏. 第一步:xml存储将要使用的数据 第二步:读取xml文件的方法 第三步:xml数据文件的类 第四步:处理方法