java反射机制入门是我从极客学院的视频中学习的。

1、反射机制背景概述

  反射(Reflection)是java被视为动态(或准动态)语言的一个关键性质。反射机制指的是程序在运行时能够获取任何类的内部所有信息(属性、方法)。

2、反射机制实现功能概述

  只要给定类的全名,就可通过反射获取类的所有信息。

  反射可以再程序运行时获取任意一个对象所属的类对象。

  在运行时可以获取到类中所有属性对象,并对其操作(包括私有属性)。

  在运行时可以获取到类中、父类中所有方法,并对其调用。

  目前主流的应用框架如Struts2、Hibernate、Spring、SpringMVC等框架的核心全部是利用Java的反射机制来实现的。

1、Class对象概述

1)Class其实就是类的类型

2)字符串类型就是String,整形类型就是Integer,String和Integer类型就是Class

2、Class对象的常用方法介绍

方法名 释义
getName() 获得类中完整名称
getDeclaredFields() 获得类中所有属性
getDeclaredMethods() 获得类中所有方法
getConstructors() 获得类构造方法
newInstance() 实例化类对象

3、获取class对象的3种方式

package com.rainmer.bean;

public class Book {
private int id;
protected String name;
public String type;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
System.out.println("调用了getName方法");
return name;
}
public void setName(String name) {
System.out.println("调用了setName方法");
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
} public void test(String name, int a){
System.out.println("调用了多参数的方法");
}
}
package com.rainmer.main;

import com.rainmer.bean.Book;

public class Test1 {
public static void main(String[] args) {
Class demo1 = null;
Class demo2 = null;
Class demo3 = null; //创建类对象的3种方式
//第一种方式
try {
demo1 = Class.forName("com.rainmer.bean.Book");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(demo1); //第二种方式
Book bo = new Book();
Object ob = bo;
System.out.println(ob.getClass());
System.out.println(bo.getClass()); //第三种方式
demo3 = Book.class;
System.out.println(demo3); //实例化类对象
try {
Book bo1 = (Book) demo1.newInstance();//newInstance方法默认返回Object对象
System.out.println(bo1);//@后面的是分配的内存地址
} catch (InstantiationException | IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

程序输出:

class com.rainmer.bean.Book
class com.rainmer.bean.Book
class com.rainmer.bean.Book
class com.rainmer.bean.Book
com.rainmer.bean.Book@14681070

java反射机制入门01的更多相关文章

  1. java反射机制入门04

    需要jxl.jar package com.rainmer.main; import java.io.File; import java.io.IOException; import java.uti ...

  2. java反射机制入门3

    Method对象的机制与实现 1.Method对象概述 1)java.lang.reflect.Method类是用于表示类中.接口中方法对象的类. 2)可以操作类中私有,以及公有等全部方法. 2.Me ...

  3. java反射机制入门02

    Field对象的机制与实现 1.Field对象概述 1)Java.lang.reflect.Field类,是用于表示类中.接口中属性对象的类. 2)可以操作类中私有,以及公有等全部属性和属性的信息. ...

  4. java 反射机制01

    // */ // ]]>   java反射机制01 Table of Contents 1 反射机制 2 反射成员 2.1 java.lang.Class 2.2 Constructor 2.3 ...

  5. Java 反射机制浅析

    Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反 ...

  6. Java反射机制详解(1) -反射定义

    首先,我们在开始前提出一个问题: 1.在运行时,对于一个java类,能否知道属性和方法:能否去调用它的任意方法? 答案是肯定的. 本节所有目录如下: 什么是JAVA的反射机制 JDK中提供的Refle ...

  7. 大白话说Java反射:入门、使用、原理

    文章首发于[博客园-陈树义],点击跳转到原文<大白话说Java反射:入门.进阶.原理> 反射之中包含了一个「反」字,所以想要解释反射就必须先从「正」开始解释. 一般情况下,我们使用某个类时 ...

  8. JAVA反射机制及理解

    JAVA反射 往往当我们面对一项新的知识时,我们往往需要知道三个方面,它是什么,它能做什么,它比原有知识强在哪里,我们该怎么使用它.当你能够解决这些问题时,便意味着你已经对这项知识入门了. 首先: 反 ...

  9. Java 反射机制(包括组成、结构、示例说明等内容)

    第1部分 Java 反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据“类的部分已经的信息”来还原“类的全部的信息”.这里“类的部分已经的信息”,可以是“类名”或“类的对象” ...

随机推荐

  1. MySql每月增加一个分区以及查询所有分区

    create PROCEDURE Usp_Partition() BEGIN DECLARE _time datetime; DECLARE num int; DECLARE _p VARCHAR(2 ...

  2. 微信公众号token验证失败的一些总结

    这几天准备弄一个微信公众号,在进行服务器配置的时候出现总是出现token验证失败的报错. 实际上,这个问题很好解决.既然微信平台没有给我们很明确的报错提示,那么我们就可以通过跟踪获取到的请求参数进行分 ...

  3. @Transactional失效的问题

    spring事物配置一般没有问题, 优先检查mysql的引擎是否是innodb, 是的话检查包的扫描是否有问题. 我就是因为包的扫描导致@Transactional失效. 具体情况如下, 在sprin ...

  4. bmfont制作数字

    http://blog.csdn.net/z104207/article/details/20136401

  5. 当x含有偶数个1,返回1,否则为0。

    题目描述: /* Return 1 when x contains an even number of 1s;0 otherwise. Assume W=32 */ int even_ones(uns ...

  6. js函数预编译和声明语句被提升问题小结

    <!DOCTYPE html><html><head></head><body><script>//-------------- ...

  7. Error inflating class android.support.v7.widget.Toolbar

    建立程序的时候出现的错误 style.xml中的 <!-- Base application theme. --> <style name="AppTheme" ...

  8. Minimum Inversion Number(线段树求逆序数)

    Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  9. 【Linux操作系统分析】设备驱动处理流程

    1 驱动程序,操作系统,文件系统和应用程序之间的关系 字符设备和块设备映射到操作系统中的文件系统,由文件系统向上提供给应用程序统一的接口用以访问设备. Linux把设备视为文件,称为设备文件,通过对设 ...

  10. 关闭Outlook的时候使之最小化

    Outlook很搓的一点就是只有按‘最小化’按钮的时候才会最小化到托盘,而按‘关闭’按钮Outlook直接被关闭退出.然后经常发现没邮件,结果是因为客户端关掉了. 下面通过插件方式实现关闭后最小化到托 ...