昨天我在写PHP程序的时候,无意发现在PHP的::操作符非常强大,不仅仅是只用在访问parent,sel,静态成员属性.常量上面,其实他的功能强大了去了 . 这个符号在PHP中实际上叫做范围解析符,这是PHP官方的解释php.net/manual/zh/language.oop5.paamayim-nekudotayim.php.但是官方中文部分只是简单的介绍了 访问parent,sel,静态成员属性.常量的作用,而下面英文部分,可能由于咱们这些吊死对英文不好的缘故,就没看下去了,实现上,下面还…
Atitit利用反射获取子类 集合 以及继承树 想从父类往下找子类的确是不可能的,要知道只要类不是final的话谁都有继承它的自由不需要事前通知父类. Eclipse实现不是重父类开始找而是重子类往回找,然后在逐个匹配. 很简单,遍历源代码目录下的所有类文件,根据类定义行通过字符串匹配找出继承该类的所有子类. 找某个包的子类,JDK中没有直接提供相应的接口,应该是加载classpath下的所有类,放到类似Map<Package, Collection<Class>>容器中 如果一定…
异常处理 什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在Python无法正常处理程序时就会发生一个异常.异常是Python对象,表示一个错误.当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行. 方式一.  使用try/except语句. try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理. 如果你不想在异常发生时结束你的程序,只需在try里捕获它. 语法: 以下为简单的try...…
反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的名称.限定符和参数等.有了反射,即可对每一个类型了如指掌.如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道. 1..NET可执行应用程序结构 程序代码在编译后生成可执行的应用,我们首先要了解这种可执行应用程序的结构. 应用程序结构分为应用程序域—程序集—模块—类型—成员…
代理模式 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 静态代理 1.新建一个接口,这个接口所提供的方法是关于数据库操作的 public interface EmployeeDao { public void updateSalary(); } 2.建一个目标类实现这个接口,这个目标类是我们要进行的业务 public class EmployeeDaoImpl imple…
[.net 面向对象程序设计进阶] (20) 反射(Reflection)(上)利用反射技术实现动态编程 本节导读:本节主要介绍什么是.NET反射特性,.NET反射能为我们做些什么,最后介绍几种常用的反射的实现方法,通过对反射性特的了解,可以设计出非常有用的基于反射的编程模式. 读前必备: [.net 面向对象编程基础]  (10) 类的成员(字段.属性.方法) 1.什么是.NET反射? 反射是.NET一个重要的特性,<CLR via C#>一书中对.NET反射的解释为:在我们应用程序中使用元…
此类针对javaBean类写了一个通用的查询方法,List<javaBean> 通用查询更新中...:通过学习,深刻体会到学会反射就等于掌握了java基础的半壁江山! 一.使用JDBC驱动程序处理元数据: *   .java通过JDBC获得连接后得到一个Connection对象,可以从这个对象获得有关数据库管理系统的各种信息, *   包括数据库的各个表,表中的各个列,数据类型,触发器,存储过程等各方面的信息.根据这些信息,JDBC可以访问 *   一个事先并不了解的数据库. *   .获取这…
.NET 利用反射将对象数据添加到数据库   一些小型的项目,在不使用其他的框架(LINQ,NHibernate,EF等等框架)的前提下,这时候一些反复的增删改查就会让我们感到极其的繁琐,厌烦,为了避免这种情况出现,本人写了一个小的工具类.自动将实体类添加到数据库. 实现功能的思路: 1,通过反射获取该对象名称和所有属性名称,然后组合成insert SQL字符串 (前提是对象属性名称和数据库字段名称一致,表名称和实体类名称一致.不区分大小写). 2,通过反射获取该对象的每个属性值,并动态的往已经…
前些天写了个导出Excel的公共类,因为项目中也需要上传Excel,没有利用Office组件,(PS:Office在上传文件时候,Excel进程无法关闭,会导致上传和打开失败)有的说利用Kill把进程给关闭,我总觉得这样的方法不好,没有任何原因,关闭一个进程,想想都有点悬. 这个例子是采用NPOI组件,下载地址:http://npoi.codeplex.com/,先不说组件的事,说下实现思路. 把类实体转换表格时候,最头疼莫过于表头和字段的设计,刚开始有几个同事利用解析Html,有几个导出功能就…
1.创建BaseServlet (重写父类的service方法) package com.learning.web.servlet; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import javax.servlet.ServletException; import javax.servlet.ServletReq…
早在介绍多态的时候,曾经提到公鸡实例的性别属性可能被篡改为雌性,不过面向对象的三大特性包含了封装.继承和多态,只要把性别属性设置为private私有级别,也不提供setSex这样的性别修改方法,那么性别属性就被严严实实地封装了起来,不但外部无法修改性别属性,连公鸡类的子类都无法修改.如此一来,公鸡实例的性别属性可谓防护周全,压根不存在被篡改的可能性.但是Java给面向对象留了个后门,也就是反射技术,利用反射技术竟然能够攻破封装的防护网,使得篡改私有属性从理想变成了现实,赶紧来看看反射技术是怎样做…
前言 项目中虽然有ORM映射框架来帮我们拼写SQL,简化开发过程,降低开发难度.但难免会出现需要自己拼写SQL的情况,这里分享一个利用反射跟自定义注解拼接实体对象的查询SQL的方法. 代码 自定义注解: @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface Like { } @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNT…
如何利用反射简化Servlet操作   一.反射的实现 新建类BaseServlet,继承HttpServlet(不需要在web.xml文件中配置) 1.在doPost()方法中处理请求乱码,并调用doGet()方法 //处理post请求乱码,只需要在getParamter方法第一次调用前,设置request的编码 request.setCharacterEncoding("utf-8"); 调用doGet() 2.doGet()中: //获取用户传递的请求参数 String meth…
对于WCF的宿主启动来说,有好多方法,单独启动也很简单,可以根据业务需要来自由选择(单独启动方法这里就不做解释) 对于业务服务比较多的时候,往往需要多个服务来承载系统,但是如果将服务启动单独写代码启动的话,这样就造成代码的耦合,增加服务,删除服务都需要对宿主程序进行修改编译,因而就需要一个批量启动的办法 现在着重整理一下理由反射批量启动 思路:1.自定义两个属性,用于接口和实现类,一个为接口属性,一个为实现类属性 2.利用反射获取指定程序集的所有类文件,根据标记属性可以获取到那些为WCF接口和那…
public class ConvertHelper<T> where T : new() { /// <summary> /// 利用反射和泛型 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static List<T> ConvertToList(DataTable dt) { //…
/// <summary> /// 利用反射将Datatable转换为List<T>对象 /// </summary> /// <typeparam name="T">集合</typeparam> /// <param name="dt"> datatable对象</param> /// <returns></returns> public List<T…
Java语言中,在一个类中,为了不让外界访问到有的属性和方法,通常将其设置为private,用正常的方式(对象名.属性名,对象名.方法名)将无法访问此属性与方法,但有没有其他方法可以访问呢?答案是有的,这就是java反射带来的便利.利用反射访问类的私有属性及方法如下: 1.准备一个java类,包含私有属性及方法: //Exam.java public class Exam{ private String field1="私有属性"; public String field2="…
试想这样一个业务需求:有一张合同表,由于合同涉及内容比较多所以此表比较庞大,大概有120多个字段.现在合同每一次变更时都需要对合同原始信息进行归档一次,版本号依次递增.那么我们就要新建一张合同历史表,字段跟原合同表一模一样,此外多了一个 合同版本号 字段.在归档时如何把原始合同信息插入到合同历史表呢? 很容易就能想到的一种解决方法: insert into 合同历史表(字段1,字段2,字段3…………字段120,版本号) select   字段1,字段2,字段3…………字段120,0 as 版本号…
一次请求的执行过程: 请求:发送请求地址-->到达web.xml中,找到地址对应的servlet类-->通过反射调用该类的构造函数,创建该servlet类的对象-->通过当前对象调用该servlet的init方法-->发现没有-->从其父类HttpServlet找init,还是没有-->再找其父类GenericServlet,有init,调用该init方法加载当前servlet类-->调用当前servlet的service方法-->发现没有,找父类HttpS…
问题: 1.根据COM组件的ProgID,得到COM组件公开的类型 2.创建COM组件提供的类型的对象 3.调用执行方法 正确姿势 C#利用反射调用(后期绑定)PB编译的COM组件 C#调用COM组件可以在VS工程中直接添加引用,这种方式写起来很方便,但是当COM组件经常更新,这样处理起来倒不如后期绑定适用了. 1.根据COM组件的ProgID,得到COM组件公开的类型 Type comType = Type.GetTypeFromProgID("jmjkk.n_sys_sbjc");…
原文地址:http://blog.csdn.net/gxiangzi/article/details/8629064 试想这样一个业务需求:有一张合同表,由于合同涉及内容比较多所以此表比较庞大,大概有120多个字段.现在合同每一次变更时都需要对合同原始信息进行归档一次,版本号依次递增.那么我们就要新建一张合同历史表,字段跟原合同表一模一样,此外多了一个 合同版本号 字段.在归档时如何把原始合同信息插入到合同历史表呢? 很容易就能想到的一种解决方法: insert into 合同历史表(字段1,字…
如果一个项目中存在多种信息的导入导出,为了简化代码,就需要用反射实现通用的excel导入导出 实例代码如下: 1.创建一个 Book类,并编写set和get方法 package com.bean; public class Book { private int id; private String name; private String type; // public int a; public String getType() { System.out.println("调用了类型方法&qu…
[.net 面向对象程序设计进阶] (21) 反射(Reflection)(下)设计模式中利用反射解耦 本节导读:上篇文章简单介绍了.NET面向对象中一个重要的技术反射的基本应用,它可以让我们动态的调用一个程序集中的成员,本篇文章将介绍如何将这一重要特性应用到设计模式中,达到swich……case,if……else带来的耦合问题,让我们的代码更漂亮,更灵活. 读前必备: [.net 面向对象编程基础](9)类和类的实例[.net 面向对象编程基础] (16) 接口 [.net 面向对象程序设计进…
拿微信消息返回的示例数据实验 var data = "<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>1348831860</CreateTime><MsgType><![CDATA[text]]>…
.NET基础篇——反射的奥妙 C#获取实体类属性名和值 | 遍历类对象 c#通过反射获取类上的自定义特性 C#利用反射+特性实现简单的实体映射数据库操作类…
转自:http://www.68idc.cn/help/buildlang/ask/20150318283817.html 项目中如下的泛型方法,因为要在运行时,动态指定类型参数,所以要利用反射来实现. public static TR Deserialize<TR>(byte[] source, ref int offset) 一般做法如下: // 变量 type是该方法所在类型的运行时Type // model是已经定义的实例 MethodInfo genericMethod = type…
最基本的调用方法 (1)button1.PerformClick();(2)button1_Click(null,null);(3)button_Click(null,new EventArgs()); 利用反射调用 最开始的调用方法 //建立一个函数 private void callOnClick(Button btn) { //建立一个类型 Type t = typeof(Button); //参数对象 ]; //产生方法 MethodInfo m = t.GetMethod("OnCli…
1. DataTable转IList public class DataTableToList<T>whereT :new() { ///<summary> ///利用反射将Datatable转换成List模型 ///</summary> ///<param name="dt"></param> ///<returns></returns> public static List<T> Con…
元数据:描述数据的数据,ResultSetMetaData是描述ResultSet的元数据对象,从它可以得到数据集有多少了,每一列的列名... ResultSetMetaData可以通过ResultSet类的getMetaData()获得. ResultSetMetaData中的方法: ->getColumnCount():获取数据集有多少列 ->getColumnLabel(int column):获取指定列的列名,索引从1开始 步骤: 1.利用sql进行查询,得到结果集,查询时应该给出列的…
--------------------------------------------------------------------------------------------------------------------------------------------------------------- 1.customer类: package com.lanqiao.javatest; import java.sql.Date; public class Customer { p…