java反射机制入门01
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的更多相关文章
- java反射机制入门04
需要jxl.jar package com.rainmer.main; import java.io.File; import java.io.IOException; import java.uti ...
- java反射机制入门3
Method对象的机制与实现 1.Method对象概述 1)java.lang.reflect.Method类是用于表示类中.接口中方法对象的类. 2)可以操作类中私有,以及公有等全部方法. 2.Me ...
- java反射机制入门02
Field对象的机制与实现 1.Field对象概述 1)Java.lang.reflect.Field类,是用于表示类中.接口中属性对象的类. 2)可以操作类中私有,以及公有等全部属性和属性的信息. ...
- java 反射机制01
// */ // ]]> java反射机制01 Table of Contents 1 反射机制 2 反射成员 2.1 java.lang.Class 2.2 Constructor 2.3 ...
- Java 反射机制浅析
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反 ...
- Java反射机制详解(1) -反射定义
首先,我们在开始前提出一个问题: 1.在运行时,对于一个java类,能否知道属性和方法:能否去调用它的任意方法? 答案是肯定的. 本节所有目录如下: 什么是JAVA的反射机制 JDK中提供的Refle ...
- 大白话说Java反射:入门、使用、原理
文章首发于[博客园-陈树义],点击跳转到原文<大白话说Java反射:入门.进阶.原理> 反射之中包含了一个「反」字,所以想要解释反射就必须先从「正」开始解释. 一般情况下,我们使用某个类时 ...
- JAVA反射机制及理解
JAVA反射 往往当我们面对一项新的知识时,我们往往需要知道三个方面,它是什么,它能做什么,它比原有知识强在哪里,我们该怎么使用它.当你能够解决这些问题时,便意味着你已经对这项知识入门了. 首先: 反 ...
- Java 反射机制(包括组成、结构、示例说明等内容)
第1部分 Java 反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据“类的部分已经的信息”来还原“类的全部的信息”.这里“类的部分已经的信息”,可以是“类名”或“类的对象” ...
随机推荐
- C++ 字符串分割,分割到vector中
#include <string> #include <vector> using std::string; using std::vector; int splitStrin ...
- [Windows编程] 开发DLL必读《Best Practices for Creating DLLs》
开发DLL的时候,需要十分注意 DllMain 函数,因为在多线程环境下DLLMain里面的代码很容易引发线程死锁. 这篇MSDN文章<Best Practices for Creating D ...
- java 值传递和引用传递。
java中 基本类型的参数传递是值传递,即前后两个方法的变量不相干,被调方法参数值改变不影响调用方法的传参数值. 引用数据类型的参数传递是 传递的是参数的地址.即被调方法修改参数值会,调用方法里会跟着 ...
- Flex 内置验证器—验证用户输入
今晚对于Flex中的Validator类(所有验证器的父类)测试一下 ---->其中常用的验证类有StringValidator,NumberValidator,DateValidator 测试 ...
- Java-线程间通信
Java-线程间通信 一 线程通讯 就是多个线程操作同一个资源,可是操作的动作不同 二 停止线程: 控制住run的循环就能够控制线程结束 当线程处于冻结状态,就不会读取标记,线程就不会结束 inter ...
- UIControl IOS控件编程 及UITextField的讲解
第一部分 UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedControl分段控件.UISlider滑块.UITextField文本字段控件.UIPageCo ...
- c 判断水仙花数,质数(素数)
#include<stdio.h> #include<stdbool.h> //水仙花数--各位立方和等于本身 void sXh() { int x,y,z; printf(& ...
- javascript技术难点之this、new、apply和call详解
讲解this指针的原理是个很复杂的问题,如果我们从javascript里this的实现机制来说明this,很多朋友可能会越来越糊涂,因此本篇打算换一个思路从应用的角度来讲解this指针,从这个角度理解 ...
- for语句及switch case用法示例
for(初始条件:循环条件:状态改变){ 循环体:执行代码} 示例一: 示例二: 示例三: 示例四: 示例五: 示例六: 示例七: switch case: 示例一: 示例二: 示例三:
- java异常回顾
String getMessage():返回此Throwable的详细消息字符串 void PrintStackTrace():将throw及其追踪输出至标准错误流 void printStackTr ...