黑马程序员反射和代理模式

【即插即用模块】卷积篇 | TCSVT 2025 | MFACB:多尺度膨胀融合,快速扩大感受野,多尺度特征精准捕捉! 本文提出了一种新型多尺度融合膨胀卷积模块MFACB,用于增强语义分割任务中的特征表达能力。该模块通过三分支串联膨胀卷积结构快速扩大感受野,采用双路径融合机制(基础信息路径+多尺度信息路径)实现高效上下文聚合。相比传统卷积块,MFACB在保持轻量化的同时显著提升了多尺度特征捕捉能力,实验表明其性能优于基础残差块。该模块支持自定义膨胀率和步长调整,可灵活嵌入不同网络阶段,适用于需要特征增强的视觉任务。 阅读详情

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

黑马程序员反射和代理模式

反射是Java被视为动态语言的一个关键性质。这个机制允许程序在运行时透过反射APIs取得任何一个已知名称的类的内部信息,包括其访问修饰符、父类、实现它的接口,也包括属性和方法的所有信息,并可于运行时改变属性内容或调用方法。Class类代表Java类,它的各个实例对象分别对应各个类在内存中的字节码,例如,Person类的字节码,ArrayList类的字节码,等等。一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类的字节码,不同的类的字节码是不同的,所以它们在内存中的内容是不同的,这一个个的空间可分别用一个个的对象来表示,这些对象显然具有相同的类型,即Class类。

数组的反射:

(1)          具有相同维数和元素类型的数组属于同一个类型,即具有相同的Class实例对象。

(2)          代表数组的Class实例对象的getSuperClass()方法返回的父类为Object类对应的Class。

(3)          基本类型的一维数组可以被当作Object类型使用,不能当作Object[]类型使用;非基本类型的一维数组,既可以当做Object类型使用,又可以当做Object[]类型使用。

反射的作用是用来实现框架。

反射是把Java类中的各种成分映射成相应的java类。在JDK中,主要由以下类来实现Java反射机制,这些类都位于java.lang.reflect包中

1.      Class类:代表一个类,运行时判断任意一个对象所属的类。

2.       Field类:代表类的成员变量。

3.       Method类:代表类的方法。

4.       Constructor类:代表类的构造方法。

5.       Array类:提供了动态创建数组,以及访问数组的元素的静态方法。

在java.lang.Object类中定义了getClass()方法,因此对于任意一个Java对象都可以通过此方法获得对象的类型。Class类是反射API中的核心类,它有以下方法:

1.       getName():获得类的完整名字。

2.       getFields():获得类的public类型的属性。

3.       getDeclaredFields():获得类的所有属性。

4.       getMethods():获得类的public类型的方法。

5.       getDeclaredMethods():获得类的所有方法。

Class类十分特殊。它和一般类一样继承自Object,其实体用以表达java程序运行时的类和接口,也用来表达enum、array、原生数据类型。当一个class被加载,或当加载器的defineClass()被JVM调用,JVM便自动产生一个Class对象。如果你想借由“修改Java标准库源码”来观察Class对象的时间生成时机,不能够。因为Class并没有public构造函数。Class是反射的开始。针对任何你想探看的类,唯有先为它产生一个Class类对象,接下来才能经由后者唤起为反射APIs。

Java从多种途径为一个类生成对应的Class对象。

1.      运用getClass();//每个对象都要此函数;

String str = “abc”;

Class cl = str.getClass();

2.       运用Class.getSuperclass();

Button b = new Button();

Class c1 = b.getClass();

Class c2 = c1.getSuperclass();

3.       运用static方法Class.forName()

Class c1 = Class.forName(“java.lang.String”);

4.       运用.class语法

Class c1 = String.class;

5.       运用原生数据类型的包装类的TYPE语法

Class c1 = Boolean.TYPE;

欲生成对象实体,在反射动态机制中有两种做法,一个针对“无自变量构造函数”,一个针对“带参数构造函数”。如果欲调用的是“带参数构造函数”就比较麻烦些,不再调用Class的newInstance(),而是调用构造方法的newInstande()。首先准备一个Class[]作为构造方法的参数类型,然后以此为自变量调用getConstructor(),获得一个专属构造方法。接下来再准备一个Object[]做为构造方法实际参数值,调用上述专属构造方法的newInstance()。

动态生成String所对应的Class对象实体:无自变量。

Class c = Class.forName(“java.lang.String”);

Object obj = null;

obj = c.newInstance();

动态生成测试类对应的Class对象实体:自变量以Object[]表示。

Class c = Class.forName(“dynTest”);

Class[] pTypes = new Class[] {double.class,int.class};

Constructor ctor = c.getConstructor(pTypes);

Object obj = null;

Object[] arg = new Object[] {3.14,12};

obj = ctor.newInstance(arg);

运行时调用methods。首先准备一个Class[]作为参数类型,然后以此为自变量调用getMethod(),获得特定的Method对象。接下来准备一个Object[]放置自变量,然后调用上述所得之特定Method对象的invoke()。代码如下

package com.heima.exam;

 

import java.lang.reflect.Method;

 

publicclass InvokeTester

{

    publicint add(int param1, int param2)

    {

       return param1 + param2;

    }

 

    public String echo(String message)

    {

       return"hello: " + message;

    }

 

    publicstaticvoid main(String[] args) throws Exception

    {

      

       Class<?> classType = InvokeTester.class;

 

       Object invokeTester = classType.newInstance();

 

 

       Method addMethod = classType.getMethod("add", new Class[] { int.class,

              int.class });

      

       Object result = addMethod.invoke(invokeTester, new Object[]{1, 2});

      

       System.out.println((Integer)result);

      

       System.out.println("---------------------");

      

       Method echoMethod = classType.getMethod("echo", new Class[]{String.class});

      

       Object result2 = echoMethod.invoke(invokeTester, new Object[]{"tom"});

      

       System.out.println((String)result2);

      

    }

}

 

运行时变更fields内容。首先调用Class的getFiels()并指定field名称。获得特定的Field对象之后便可直接调用Field的get()和set()

package com.heima.exam;

 

import java.lang.reflect.Field;

 

publicclass FieldTest {

publicdoubled=0;

publicstaticvoid main(String[] args) throws Exception

{

   

    Class c = FieldTest.class;

    Field f = c.getField("d");

   

    FieldTest obj = new FieldTest();

    f.set(obj, 1.23);

    System.out.println("d="+obj.d);

   

}

}

 

代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式一般涉及到的角色有:

1.       抽象角色:声明真实对象和代理对象的共同接口。

2.       代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象。代理对象提供与真实对象相同的接口以便在任何时候都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。

3.       真实角色:代理角色所代表的真实对象,是我们最终要引用的对象。

下面是抽象角色

package com.heima.exam;

 

publicabstractclass Subject

{

    publicabstractvoid request();

}

这是真实角色

package com.heima.exam;

 

publicclass RealSubject extends Subject

{

    publicvoid request()

    {

       System.out.println("From real subject.");

    }

}

以下是代理角色

package com.heima.exam;

 

publicclass ProxySubject extends Subject

{

    private RealSubject realSubject; //代理角色内部引用了真实角色

   

    publicvoid request()

    {

       this.preRequest(); //在真实角色操作之前所附加的操作

      

       if(null == realSubject)

       {

           realSubject = new RealSubject();

       }

      

       realSubject.request(); //真实角色所完成的事情

      

       this.postRequest(); //在真实角色操作之后所附加的操作

    }

   

    privatevoid preRequest()

    {

       System.out.println("pre request");

    }

   

    privatevoid postRequest()

    {

       System.out.println("post request");

    }

}

 

客户端调用

package com.heima.exam;

 

publicclass Client

{

    publicstaticvoid main(String[] args)

    {

       Subject subject = new ProxySubject();

      

       subject.request();

    }

}

上述的方法使用的是静态代理模式。按照这种方式,真实角色必须是事先已经存在的,并将其作为代理对象的内部属性。在实际使用时,一个真实角色必须对应一个代理角色,但是如果大量使用会导致类的急剧膨胀;此外,如果事先不知道真实角色,该如何使用代理呢?这个问题可通过java的动态代理类来解决。

动态代理类是在运行时生成的类,在生成它时你必须提供一组接口给它,然后该类就宣称它实现了这些接口。你当然可以把该类的实例当作这些接口中的任何一个来用。当然,这个动态代理类其实就是一个代理,它不会替你做实质性的工作,在生成它的实例时你必须提供一个handler,由它接管实际的工作。

Java动态代理类位于java.lang.reflect包下,一般主要涉及到两个类:

(1)   Interface InvocationHandler:该接口中仅定义了一个方法

public Object invoke(Object proxy,Method method,Object[] args)

在实际使用时,第一个参数proxy指代理类,一般我们用不到。method是被代理的方法,如上例中的request(),args为该方法的参数数组。这个抽象方法在代理类中动态实现。

(2)   Proxy:该类即为动态代理类,作用类似于上例中的ProxySubject,其中主要包括以下内容

protected Proxy(InvocationHandler h):构造函数,用于给内部的h赋值。

static Class getProxyClass(ClassLoader loader,Class[] interfaces):获得一个代理类,其中loader是类加载器,interfaces是真实类所拥有的全部接口的数组。

static Object newProxyInstance(ClassLoader loader,Class[] interfaces,InvocationHandler h):返回代理类的一个实例,返回后的代理类可以当作被代理类使用(可使用被代理类的在Subject接口中声明过的方法)。

通过这种方式,被代理的对象(RealSubject)可以在运行时动态改变,需要控制的接口(Subject接口)可以在运行时改变,控制的方式(DynamicSubject类)也可以动态改变,从而实现了非常灵活的动态代理关系。

动态代理步骤:

1.  创建一个实现接口InvocationHandler的类,它必须实现invoke方法。

2.  创建被代理的类以及接口。

3.  通过Proxy的静态方法newProxyInstance(ClassLoader loader,Class[] interfaces,InvocationHandler h)创建一个代理。

4.  通过代理调用方法。

下面是抽象角色

package com.itheima;

 

publicinterface Subject {

    publicvoid request();

}

下面是真实角色

package com.itheima;

 

publicclass RealSubject implements Subject

{

    publicvoid request()

    {

       System.out.println("From real subject!");

    }

 

}

 

下面是动态代理

package com.itheima;

 

import java.lang.reflect.InvocationHandler;

import java.lang.reflect.Method;

 

/**

 * 该代理类的内部属性是Object类型,实际使用的时候通过该类的构造方法传递进来一个对象

 * 此外,该类还实现了invoke方法,该方法中的method.invoke其实就是调用被代理对象的将要

 * 执行的方法,方法参数是sub,表示该方法从属于sub,通过动态代理类,我们可以在执行真实对象的方法前后

 * 加入自己的一些额外方法。

 *

 */

 

publicclass DynamicSubject implements InvocationHandler

{

    private Object sub;

   

    public DynamicSubject(Object obj)

    {

       this.sub = obj;

    }

   

    public Object invoke(Object proxy, Method method, Object[] args)

           throws Throwable

    {

       System.out.println("before calling: " + method);

      

       method.invoke(sub, args);

      

       System.out.println(args == null);

      

       System.out.println("after calling: " + method);

      

       returnnull;

    }

}

 

下面是客户端

package com.itheima;

import java.lang.reflect.InvocationHandler;

import java.lang.reflect.Proxy;

 

publicclass Client

{

    publicstaticvoid main(String[] args)

    {

       RealSubject realSubject = new RealSubject();

 

       InvocationHandler handler = new DynamicSubject(realSubject);

 

       Class<?> classType = handler.getClass();

 

       // 下面的代码一次性生成代理

 

       Subject subject = (Subject) Proxy.newProxyInstance(classType

              .getClassLoader(), realSubject.getClass().getInterfaces(),

              handler);

 

       subject.request();

 

       System.out.println(subject.getClass());

 

    }

   

}

 

 

在 SAP BTP ABAP 环境中测试多租户 SaaS 解决方案的完整实践指南 ABAP SaaS测试阶段关键实践 在SAP BTP ABAP环境中开发多租户SaaS解决方案时,测试阶段(TST)对确保产品质量尤为关键。测试阶段应包含两个主要维度: 业务功能验证: 通过软件组件管理确保测试环境与代码仓库同步 创建并验证业务角色分配,确保权限配置正确 测试Fiori Launchpad导航流程和跨应用跳转 验证inbound/outbound通信配置 自动化质量管控: 在开发环境(DEV)执行本地ATC检查和单元测试 通过ABAP Test Cockpit(ATC)进行代码质量检查 集成 阅读详情

相关推荐

ubuntu18.04安装xenomai3.1(百分百成功版)

ubuntu18.04安装xenomai3.1(百分百成功版),保姆级教学!!!

h542812556sdu的博客 2064

黑马程序员——Java的代理模式

------- android培训、java培训、期待与您交流! ----------

黑马程序员学习日记 2383

一文读懂AI大模型时代的RAG技术

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合检索技术与生成模型的技术架构,旨在通过动态引入外部知识库增强大语言模型(LLM)的生成能力。其核心思想是通过检索系统从外部数据源(如企业知识库、实时文档等)获取相关信息,并将检索结果作为上下文输入生成模型,以提高生成答案的准确性、时效性和专业性

awei0916的专栏 2119

Spring框架-代理模式

提示:介绍的设计模式从java到mybatis框架到spring框架的应用基本概念:设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。黑马程序员教程对设计模式的叙述:一个问题通常有 N 种解法,其中肯定有一种解法是最优的,这个最优的解法被总结出来,称之为设计模式。

qq_42211536的博客 1086

VMware桥接模式实战:用手机热点给Linux虚拟机共享网络(附WiFi适配技巧)

本文详细介绍了在移动办公场景下,如何为VMware中的Linux虚拟机配置桥接模式,以通过手机热点共享网络。文章深入解析了桥接模式在无线环境下的工作原理,提供了从主机端准备、VMware设置到Linux虚拟机内部配置的完整实战步骤,并针对手机热点的特殊性,分享了MTU优化、DNS配置及常见网络问题的诊断与解决方案,帮助用户实现稳定高效的移动虚拟化办公。

2y3u4i5o6p的博客 1196

【GESP】C++四级考试大纲知识点梳理, (10) 文件读写和重定向

其实,由于本人也是边学、边实验、边总结,且对考纲深度和广度的把握属于个人理解。因此本文更多的不是一个教程,而是个人知识梳理,如有遗漏、疏忽,欢迎指正、交流。孩子放假,出游一周,没有更新。刚刚归来,继续学习。GESP C++四级官方考试大纲中,共有11条考点,本文针对第10条考点进行分析介绍。(10)掌握文件操作中的重定向,实现文件读写操作,了解文本文件的分类,掌握写操作、读操作、读写操作。GESP C++四级官方考试大纲中,共有11条考点,本文针对第10条考点进行分析介绍。孩子放假,出游一周,没有更新。

CoderCoding的博客 525

黑马程序员——mysql——day05——反射、注解、动态代理

目标了解反射技术的作用 【了解】讲解反射的概述反射技术的作用目标能够理解注解在程序中的作用 【了解】讲解什么是注解注解的作用目标能够熟悉自定义注解的格式 【会用】讲解注解的定义格式定义带有属性的注解定义注解使用关键字:@interfacepublic @interface 注解名{//内容注解本质上就是一个接口。所有注解都会继承一个接口:Annotationpublic interface 自定义注解名 extends java.lang.annotation.Annotation {}概念。

qq_56444564的博客 977

机器学习【学校智慧食堂及其应用】

本文主要介绍机器学习【智慧食堂及其应用】

qq_201729558 2571

黑马程序员_java代理模式

java代理 1、了解代理模式 代理: 要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如:异常处理、日志、计算方法的运行时间、事务管理等等。 编写一个与目标类具有相同接口的代理类,代理类的每个方法调用目标类的相同方法,并在调用方法时加上系统功能的代码。 如图: 图 1-1 相关的类和接口 java.lang.reflect.Proxy:动态代理机制的

QingLiZhan的专栏 725

XMind文件解析黑科技:用Python实现版本自适应读取(兼容2010-2024)

本文深入探讨了如何利用Python实现XMind文件的版本自适应解析,兼容从2010到2024年的各版本。通过分析XMind文件作为ZIP压缩包的本质,文章提供了智能探测文件内部结构(JSON或XML)并构建健壮读取逻辑的完整方案,有效解决了版本兼容性难题,并演示了将解析数据转换为PlantUML等下游应用的实战案例。

weixin_29041767的博客 683

PCL 使用RANSAC拟合平面【2026最新版】

RANSAC拟合平面算法原理和实现流程详解以及最大迭代次数和内点期望概率的设置方法。最后再对拟合后的平面法向量与向量(1,1,1)进行定向。博客长期更新,最近一次更新时间为:2026年4月24日。

点云侠的博客 42万+

黑马程序员 高新技术 反射与代理

这两个知识点是学高新技术最大的收获

superob123的专栏 668

Python爬取马蜂窝旅游攻略详细实战指南

马蜂窝是国内非常知名的旅游攻略网站,包含了大量的景点介绍、旅行攻略、游记等信息。爬取马蜂窝的数据对于旅游数据分析、旅游产品推荐等有重要价值。但由于马蜂窝对爬虫有一定的反爬措施,并且页面中大量内容通过JavaScript动态加载,爬虫难度相对较大。本篇博客将带你从零开始,使用Python和相关爬虫技术,逐步实现对马蜂窝旅游攻略内容的高效爬取。并结合实战经验,分析反爬策略,提供科学合理的绕过方案。本文介绍了马蜂窝攻略的结构和抓取难点。演示了静态+动态内容的混合爬取技术。介绍了多线程和异步加速方法。

2201_76125261的博客 587

黑马程序员_二十三 【代理】【反射】【数组反射】【枚举】

--------------------- android培训、java培训、java学习型技术博客、期待与您交流! -------------------     1   代理   生活中的代理:   |----武汉人从武汉的代理商手中买联想电脑和直接跑到北京传智播客旁边来找联想总部买电脑,你觉得最终的主体业务目标有什么区别吗?基本上一样吧,都解决了核心问题,但是,一点区别都没有

宋旭东--黑马程序员博客 631

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

黑马程序员—java核心技术—反射

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------   反射这部分内容,是java部分的核心技术,重中之重,所以一定要学好。难点是对动态代理的理解:什么叫反射呢?反射也叫反向加载。我们正常创建一个对象是先new一个实例出来,而反射则是不通过创建实例对象,直接通过.class文件反向加载访问该类中的属性和方法。 获取class对象的三种方式:

Chenhaiyang__ith的博客 900

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【黑马程序员济南中心】代理模式-动态代理

【黑马程序员济南中心】代理模式-动态代理 我们上一次和大家聊了聊代理模式里的静态代理,今天和大家聊一个代理模式的另一种方式即动态代理。 什么是动态代理? 当想要给实现了某个接口的类中的方法,加一些额外的处理。比如说加日志,加事务等。可以给这个类创建一个代理,故名思议就是创建一个新的类,...

chuanli2060的博客 138

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

黑马程序员——Java动态代理

黑马程序员——Java动态代理 ---------------------- android培训、java培训、期待与您交流! ---------------------- 代理模式的定义:对其他对象提供一种代理以控制对这个对象的访问。 代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和

冯焱 675

黑马程序员———反射

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一.反射:  1.获取类的Class对象的三种方式:   1).Object-->getClass()方法;   2).任何类型都有一个class静态属性;   3).Class类的静态方法forName(String className);(常用)  2.通过Class对象获取构造

feng1170995769的博客 369

瑞_23种设计模式_代理模式

本文章为瑞_系列专栏之《23种设计模式》的代理模式篇。在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。

阿瑞——从事Java后端,喜欢研读源码、自研框架、分享经验 2395

黑马程序员--Java学习日记之类的加载,反射,动态代理,枚举

一、类的加载 1、类的加载相关概述 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三步来对这个类进行初始化。 ①加载 就是指将class文件读入内存,并为之创建一个Class对象 任何类被使用时系统都会建立一个Class对象。 ②连接 验证 是否有正确的内部结构,并和其他类协调一致 准备 负责为类的静态成员分配内

Memor_的博客 877

黑马程序员-反射机制_动态代理

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 代理模式 ①代理模式是常用的Java设计模式,它的特征是代理类和委托类有相同的接口。 代理类主要负责为委托类预处理消息、过滤信息、把消息转发给委托类,以及事后处理信息等。 代理类和委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联。 代理类的对象并不真正实现服务,

江城塞北 482

<黑马程序员>代理模式总结-静态代理

------- android培训、java培训、期待与您交流! ----------

qq_17030037的专栏 474

黑马程序员——代理

------- android培训、java培训、期待与您交流! ----------   代理类 代理类就是将需要代理的目标类中的方法在代理类中调用并添加了新的功能代码   功能代码可以添加到下面四个位置 1.      调用的方法之前 2.      调用的方法之后 3.      调用的方法前后 4.      调用的方法异常处理的catch语句中   代码示例 pa

yiminren的专栏 610

黑马程序员————java中类的加载、反射、动态代理、枚举

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 类的加载、反射、动态代理、枚举 一.类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。 1.加载: 就是指将class文件读入内存,并为之创建一个Class对象 ★★ 任何类被使用时系统都会建立一个

lgplf的博客 958

黑马程序员:Java基础总结----静态代理模式&动态代理

黑马程序员:Java基础总结 静态代理模式&amp;动态代理   ASP.Net+Android+IO开发 、 .Net培训 、期待与您交流! ...

weixin_33890499的博客 82

java--反射--黑马程序员

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 反射 主要内容:《获取Class对象的三种方式、获取无参_有参构造方法、获取成员变量、获取成员方法、运行配置文件内容、越过泛型检查、代理模式、动态代理、模版设计模式、装饰模式、 JDK5的新特性、JDK7的新特性 》 1.获取Class对象的三种方式 1.Object类中的:getCla...

weixin_30894389的博客 164
上一篇: 黑马程序员映射
下一篇: 黑马程序员线程
lamstudyingnet
博客等级 码龄15年 1粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值