文档章节

JAVA 反射 常用方法的示例 详解

jason_kiss
 jason_kiss
发布于 2017/08/31 11:54
字数 448
阅读 24
收藏 0
点赞 0
评论 0

什么是Java 反射?

 就是正在运行,动态获取这个类的信息。

反射机制的作用?

1.反编译  .class 文件到 .java 文件

2.通过反射机制 访问对象的构造方法,方法,属性等。

如何通过反射获取类?

   这里又三种方法,可以通过反射动态获取类。

    第一种:

  

    第二种:

       

第三种:

   

这三种有什么区别?

    总结:第一种通过forName() 方法 执行静态块,不执行动态块

                第二种通过.class 方法  不执行静态块和动态块

                第三种:需要创建对象,静态块,动态块都会执行

    注意:静态块 类只加载一次,如果已经加载则不会重复加载,动态块,每次new 对象都会执行。

效果如图:

    第一种:

    

   

第二种:

第三种:

java反射创建对象?

如何创建对象?

   通过实例化构造函数来创建对象。

  通过反射创建对象

    1.实例化 无参 构造函数

   

    2.实例化有参构造函数

    

 

通过反射获取方法,属性等API

getDeclaredMethods() :获取该类的所有方法

getReturnType() :获取该类方法的返回值

getParameterTypes() :获取该类方法传入参数

getDeclaredFields() :获取该类所有字段

setAccessible :允许访问私有成员

这里都是获取改类的?那么如何获取父类的呢?

 通过 子类.getSuperclass() 获取父类对象

getDeclaredMethods 获取该类的所有方法

getReturnType()获取方法的返回值

getParameterTypes() 获取该类方法的传入参数类型

getDeclaredFields() 可以访问变量,注意这里只能访问公共成员变量私有变量是访问不到的

  

   

setAccessible  设置可以访问私有成员变量

 

© 著作权归作者所有

共有 人打赏支持
jason_kiss
粉丝 9
博文 87
码字总数 49671
作品 0
浦东
程序员
Java基础之反射(非常重要)

反射是框架设计的灵魂 (使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码)) 一、反射的概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道...

Java-老刘
05/15
0
0
Android 4.4(KK)中利用APP打开关闭数据流量

在Android 4.4中,在app中打开或关闭数据流量 如果有这方面需求可以参考。 思路 利用JAVA的反射机制(Reflection),来调用CONNECTIVITY_SERVICE完成相关操作。 关于JAVA的反射机制,可以参考...

W_X
2014/12/17
0
4
【目录导航】JAVA零基础进阶之路

【JAVA零基础入门系列】(已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day6 Java字符串 Day7 Java输入与输出...

MFrank
06/21
0
0
Java注解(Annotation)详解

Java注解(Annotation)详解 1.Annotation的概念 An annotation is a form of metadata, that can be added to Java source code. Classes, methods, variables, parameters and packages may......

幻海流心
05/23
0
0
如何以Java实现网页截图技术

今天看到某网友关于“如何以Java实现网页截图技术”的咨询帖,由于出现该咨询的地点非常不适合较长回复,故以博文形式回答。 事实上,如果您想以Java实现网页截图,也就是“输入一段网址,几...

Carl_
2015/03/03
0
7
阿里历年经典Java面试题汇总

Volatile的特征: A、禁止指令重排(有例外) B、可见性 Volatile的内存语义: 当写一个volatile变量时,JMM会把线程对应的本地内存中的共享变量值刷新到主内存。 当读一个volatile变量时,J...

Java团长17
07/11
0
0
Java注解之Retention、Documented、Inherited介绍

最近研究多数据源问题,使用的是druid连接池,多数据源通过注解自动配置,使用这三个注解 @Retention @Documented @Inherited 自定义一个注解配置数据源 Retention注解:- Retention(保留)注...

品先
07/13
0
0
Java语言学习(十一):枚举类型和泛型

Java中一个重要的类型:枚举,它可以用来表示一组取值范围固定的变量,使用 enum 关键字定义枚举类型,其中元素不能重复,通常大写表示。利用Java的反射机制,可以在运行时分析类,如查看枚举...

海岸线的曙光
今天
0
0
动态代理机制详解(JDK 和CGLIB,Javassist,ASM)

在运行时期可以按照Java虚拟机规范对class文件的组织规则生成对应的二进制字节码。当前有很多开源框架可以完成这些功能,如ASM,Javassist。 动态代理机制详解(JDK 和CGLIB,Javassist,ASM...

素雷
2017/10/19
0
0
Java自定义Annotation方法

基本语法 Java代码 import java.lang.annotation.ElementType; import java.lang.annotation.Target; // The @Bind tag. @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME)......

stefanzhlg
2014/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

TensorFlow 线性回归 拟合

用tf 对 一次函数进行拟合 效果 loss 简单实现如下 import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt# 保存显示数据plotdata = {"batchsize": [], "los...

阿豪boy
2分钟前
0
0
JupyterLab安装地图插件

JupyterLab安装地图插件 (本文所述软件还在发展之中,欢迎加入开源项目,提供建议、测试和开发。) 在Jupyter中进行数据分析时,往往需要将数据叠加到地图上。简单的可以利用matplotlib/ec...

openthings
11分钟前
0
0
Coding and Paper Letter(八)

资源整理 1 Coding: 1.Python项目,由Allen Downey撰写的Think Python第二版的LaTeX源代码和支持代码。 ThinkPython2 2.R语言包h3jsr,h3jsr使用V8的神奇力量通过其javascript绑定提供对Ube...

胖胖雕
20分钟前
0
0
skiplist跳跃表

插入删除log(N) TODO

梦想游戏人
21分钟前
1
0
利用世界杯,读懂 Python 装饰器

Python 装饰器是在面试过程高频被问到的问题,装饰器也是一个非常好用的特性, 熟练掌握装饰器会让你的编程思路更加宽广,程序也更加 pythonic。 今天就结合最近的世界杯带大家理解下装饰器。...

p柯西
34分钟前
0
0
Xshell登录阿里云服务器ECS

Xshell登录阿里云服务器ECS 1. 参考资料: 1). 《阿里云服务器怎么用?阿里云服务器使用教程》 链接:http://www.cr173.com/html/50758_1.html 2). eagle-zhang的CSDN博客《Xshell连接不上阿...

SuShine
44分钟前
1
0
IDEA中的HTTP Client Editor测试API

在前后端分离项目,前后端通过api进行通信。如果用postman免费版进行api测试的话,由于无法保存测试脚本到文件,不方便前端查看。 你可以选择付费版。也可以利用IDEA自带的HTTP Client Edito...

hutaishi
46分钟前
0
0
解决“只能通过Chrome网上应用商店安装该程序”的方法

摘要 : 最近有些用户反映某个Chrome插件在安装的时候,提示“只能通过Chrome网上应用商店安装该程序”,为了解决这一问题,Chrome插件网带来了相关的解决方法。 某些用户在Chrome插件网下载了...

沧海一刀
47分钟前
0
0
通过UNIX域套接字传递文件描述符

  传送文件描述符是高并发网络服务编程的一种常见实现方式。Nebula 高性能通用网络框架即采用了UNIX域套接字传递文件描述符设计和实现。本文详细说明一下传送文件描述符的应用。 1. TCP服务...

Bwar
51分钟前
0
0
python操作Excle

# -*- coding: utf-8 -*-from openpyxl import load_workbook, Workbook#index:第几个sheet页,第一个sheet页的index为0def readExcle(filename,index): # 加载excle文件 wb = l......

淺陌离殇
52分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部