![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java 反射
茅坤宝骏氹
语言:Java、C/C++、C#、Python、Linux Shell。
框架:Spring、Spring MVC、Spring Boot、Spring Cloud、Hibernate、Mybatis、Freemarker、Velocity。
前端:HTML5、CSS3、JavaScript、Bootstrap、JQuery、Vue、React。
数据库:oracle、mysql、MongoDB、HBase。
缓存:Memcache、Redis。
消息队列:kafka。
大数据:Hadoop、Hive、Sqoop、Flume、Spark、Strom、OpenTSDB、Druid。
展开
-
JAVA反射机制
一、反射的定义 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。 二、JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 JAVA反射(放射)机制:“程序运原创 2017-11-26 17:57:07 · 433 阅读 · 0 评论 -
Java5泛型的用法,T.class的获取和为擦拭法站台
转载自 Java5泛型的用法,T.class的获取和为擦拭法站台 Java 5的泛型语法已经有太多书讲了,这里不再打字贴书。GP一定有用,不然Java和C#不会约好了似的同时开始支持GP。但大家也清楚,GP和Ruby式的动态OO语言属于不同的意识形态,如果是一人一票,我想大部分的平民程序员更热衷动态OO语言的平白自然。但如果不准备跳槽到支持JSR223的动态语言,那还是看看GP吧。 胡乱总...转载 2018-06-06 08:13:15 · 258 阅读 · 0 评论 -
Java通过Class的对象来获取泛型的class示例
转载自 Java通过Class的对象来获取泛型的class示例在使用spring的JdbcTemplate实现DAO的时候,经常会用到一个类ParameterizedBeanPropertyRowMapper。它的静态方法newInstance()接受一个Class类型的参数,用于将ResultSet中的属性映射到传入的这个Class类型的Bean对象中,再组成列表返回。 如果要想把这个DAO做...转载 2018-06-06 08:13:00 · 7275 阅读 · 1 评论 -
java反射的field.get(null)
转载自 java反射的field.get(null)在java的反射中,通过字段获取对象,是通过 public Object get(Object obj) 字段不是静态字段的话,要传入反射类的对象.如果传null是会报 java.lang.NullPointerException 但是如果字段是静态字段的话,传入任何对象都是可以的,包括null 下面是例子: package com.huan...转载 2018-06-06 08:12:48 · 5836 阅读 · 0 评论 -
Class类中的getEnclosingXX、getDeclaredXX
转载自 Class类中的getEnclosingXX、getDeclaredXX一、getEnclosingXXgetEnclosingClass():该类是在那个类中定义的, 比如直接定义的内部类或匿名内部类getEnclosingConstructor():该类是在哪个构造函数中定义的,比如构造方法中定义的匿名内部类getEnclosingMethod():该类是在哪个方法中定义的,比如方法...转载 2018-06-06 08:12:36 · 179 阅读 · 0 评论 -
Java 反射机制深入研究
转载自 Java 反射机制深入研究Java反射机制深入研究 Java 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”。 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。 Java 反射机制主...转载 2018-06-06 08:12:24 · 341 阅读 · 0 评论 -
synthetic Java合成类型
转载自 synthetic Java合成类型Synthetic 看Class源码的时候,看到有个关键字Synthetic以及isSynthetic()方法,遂有兴趣查阅了一番。 一开始以为,就是复合类型(引用类型),也就是非基本类型,可后来看到Java语言规范的描述(以及写代码测试),才知道不是,但看了许久,也不知道具体:Any constructs introduced by a Ja...转载 2018-06-06 08:12:10 · 328 阅读 · 0 评论 -
Java中的synthetic
转载自 Java中的synthetic有synthetic标记的field和method是class内部使用的,正常的源代码里不会出现synthetic field。小颖编译工具用的就是jad.所有反编译工具都不能保证完全正确地反编译class。所以你不能要求太多。 下面我给大家介绍一下synthetic 下面的例子是最常见的synthetic field Java代码class parent ...转载 2018-06-06 08:10:24 · 3474 阅读 · 0 评论 -
朝花夕拾——Java的synthetic修饰词
转载自 朝花夕拾——Java的synthetic修饰词Ok,目前为止,我还只是Android coder,一切对其他的学习都是以Android 为主线的支线任务。所以为什么会提到这个方法呢?是来自于google官方的性能建议文档的这样一句话:Consider Package Instead of Private Access with Private Inner Classes 考虑包内访问来取...转载 2018-06-06 08:10:16 · 284 阅读 · 0 评论 -
JAVA反射修改常量,以及其局限
转载自 JAVA反射修改常量,以及其局限问题,以及一个解决方案今天公司的JAVA项目碰到一个问题:在生成xls文件的时候,如果数据较多,会出现ArrayIndexOutOfBoundsException。Google发现是项中所用的jxl包(开源库,用以处理xls文件)的一个BUG。也找到了一个解决办法:http://www.blogjava.net/reeve/archive/2013/01/1...转载 2018-06-06 08:14:08 · 612 阅读 · 0 评论 -
Java编程:Java的反射机制中的 getComponentType() 方法
转载自 Java编程:Java的反射机制中的 getComponentType() 方法 Java 中所有的类都继承自 Object,数组本身也是一个 Class,如果我们能够得到数据的 Class 对象,那么我们可以通过反射生成数组对象。在Java的反射机制中,通过 数组的 class 对象的getComponentType()方法可以取得一个数组的Class对象, 通过Array...转载 2018-07-21 11:10:40 · 1282 阅读 · 0 评论 -
Class的 getSuperclass与getGenericSuperclass区别
Class的getInterfaces与getGenericInterface区别 http://www.cnblogs.com/maokun/p/6773076.html一、getSuperclass 返回直接继承的父类(由于编译擦除,没有显示泛型参数) ClassgetSuperclass() 返回表示此 Class 所表示的实体(类、接口、基本类型或 vo原创 2017-11-26 17:55:32 · 362 阅读 · 0 评论 -
Class的getInterfaces与getGenericInterface区别
一、getInterfaces 返回直接实现的接口(由于编译擦除,没有显示泛型参数) Class[]getInterfaces() 确定此对象所表示的类或接口实现的接口。确定此对象所表示的类或接口实现的接口。如果此对象表示一个类,则返回值是一个数组,它包含了表示该类所实现的所有接口的对象。数组中接口对象顺序与此对象所表示的类的声明的 im原创 2017-11-26 17:55:29 · 1483 阅读 · 0 评论 -
Class的getName、getSimpleName与getCanonicalName的区别
一、getName 除了数组外,其他的类都是输出类全名以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。 1、此类对象表示的是非数组类型的引用类型, 返回该类的二进制名称,Java Language Specification, Second Edition 对此作了详细说明。2、此类对象表示一个基本类型或 void 返原创 2017-11-26 17:55:24 · 398 阅读 · 0 评论 -
Class的getResource与ClassLoader的getResource路径/问题
一、Class的getResource(String path):URL1、path 不以’/'开头时,默认是从此类所在的包下取资源;2、path 以’/'开头时,则是从ClassPath根下获取;System.out.println(Test.class.getResource(""));System.out.println(Test.class.getResource("/"));原创 2017-11-26 17:55:21 · 435 阅读 · 0 评论 -
Class类中的getEnclosing*、getDeclared*与getDeclaringClass的区别
一、getEnclosing* 当前类在……中闭合 ClassgetEnclosingClass() 返回底层类的立即封闭类。 ConstructorgetEnclosingConstructor() 如果该 Class 对象表示构造方法中的一个本地或匿名类,则返回 Constructor 对象,它表示底层类的立即原创 2017-11-26 17:55:18 · 763 阅读 · 0 评论 -
深入Java类型信息:RTTI和反射
转载自 「深入Java」类型信息:RTTI和反射1.RTTI Run-Time Type Infomation 运行时类型信息为什么需要RTTI?越是优秀的面向对象设计,越是强调高内聚低耦合,正如依赖倒转原则所说:“无论是高层模块还是低层模块,都应该针对抽象编程”。比如说我们有一个抽象父类:Shape draw()以下是三个具体类:Circle draw()Square draw()Trian...转载 2018-05-06 14:36:49 · 203 阅读 · 0 评论 -
高级 | Java中获取类名的3种方法
转载自 高级 | Java中获取类名的3种方法获取类名的方法Java 中获取类名的方式主要有以下三种。getName()返回的是虚拟机里面的class的类名表现形式。getCanonicalName()返回的是更容易理解的类名表示。getSimpleName()返回的是类的简称。都有什么区别?通过一个实例来看下它们主要的区别。public class TestClass { public ...转载 2018-05-26 08:40:00 · 24580 阅读 · 0 评论 -
java反射 修改静态方法的值 setAccessible
转载自 java反射 修改静态方法的值 setAccessible 这几天闲来无事。在网上看了一个题目,相信大家都知道这个题目 static void change(String str){ str="welcome"; } public static void main(String[] args) { String st...转载 2018-07-29 10:34:48 · 2639 阅读 · 0 评论 -
详解 Java 中的三种代理模式
转载自 详解 Java 中的三种代理模式代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法.举个例子来说明代理的作用:假设我们想...转载 2018-10-09 12:54:53 · 163 阅读 · 0 评论