示例:

      //com.neuedu.baier.entity.User为User类的全类名
//要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段
Class<?> user=Class.forName("com.neuedu.baier.entity.User");
//调用Class下的newInstance( )静态方法来实例化对象,以便操作
Object object = user.newInstance();
//getMethod获取的是类的所有共有方法,,下面代码表示获取setName方法,参数为String
Method method = user.getMethod("setName", String.class);
//调用获取的setName方法
method.invoke(object, "张三"); //获取getName方法
Method method2 = user.getMethod("getName");
//调用getName方法,参数表示调用的对象
Object name = method2.invoke(object);
System.out.println(name);

  1、Class.forName(xxx.xx.xx)返回的是一个类Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。

  2、Class.forName(“”)返回的是类。Class.forName(“”).newInstance()返回的是object

  3、new与newInstance( )的区别:

      newInstance( )是一个方法,而new是一个关键字

      Class下的newInstance()的使用有局限,因为它生成对象只能调用无参的构造函数,而使用 new关键字生成对象没有这个限制

      newInstance(): 弱类型,低效率,只能调用无参构造。new: 强类型,相对高效,能调用任何public构造

  4、newInstance()实际上是把new这个方式分解为两步,即首先调用Class加载方法加载某个类,然后实例化。 这样分步的好处是显而易见的。我们可以在调用class的静态加载方法forName时获得更好的灵活性,提供给了一种降耦的手段。

 几个快捷键:

  1、方法返回值:在方法后,按ctrl+1,添加与方法返回类型相同的变量

  2、全类名复制:点开该类的java文件箭头,在class文件上右键—>Copy Qualified Name           

Tomcat底层通过全类名创建对象的实现的更多相关文章

  1. java反射之根据全类名创建对象

    现在的需求是根据类的全名.来创建对象 package 中介者设计模式; import java.util.Date; public class CreateObject { public static ...

  2. Tomcat解析XML和反射创建对象原理

    Tomcat解析XML和反射创建对象原理 import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Me ...

  3. Java获取指定包名下的所有类的全类名的解决方案

        最近有个需求需要获取一个指定包下的所有类的全类名,因此特意写了个获取指定包下所有类的全类名的工具类.在此记录一下,方便后续查阅 一.思路         通过ClassLoader来查找指定包 ...

  4. 一台服务器发布多个tomcat并注册服务名办法

    修改服务名称 打开Tomcat7.0.65_1/bin/service.bat  修改注册服务名称 当然这个名字自己改 比如Tomcat7_2 原始文件:   set SERVICE_NAME=Tom ...

  5. Servlet和Tomcat底层源码分析

    Servlet 源码分析   Servlet 结构图 Servlet 和 ServletConfig 都是顶层接口,而 GenericServlet 实现了这两个顶层接口,然后HttpServlet ...

  6. tomcat:域名指向项目名

    把项目部署到tomcat目录webapps后,使用域名访问的时候域名后面需要加上项目名称,如果想直接输入域名就可以访问项目呢?看了下tomcat官方文档,我修改了tomcat安装目录下conf/ser ...

  7. tomcat底层原理实现

    1.首先完成一个server类,用来接收客户端的请求:代码都在一个while(true)循环中,模拟tomcat一直在启动,其中绑定一个端口,用来监听一个端口,然后创建一个输入流,获取请求的输入流,然 ...

  8. tomcat下不用项目名直接访问项目

    把tomcat下的项目名称改为ROOT,访问项目的时候,不用输入项目名称,输入地址,如192.168.182.100:8080即可.

  9. Tomcat底层实现

    package myserver; import java.io.IOException;import java.net.ServerSocket;import java.net.Socket; pu ...

随机推荐

  1. Building Performant Expand & Collapse Animations

    t's starting to be pretty common knowledge that there are only 2 things you can animate cheaply in C ...

  2. NserviceBus过期处理

    NserviceBus不过期,修改注册表 HKEY_CURRENT_USER\Software\NServiceBus\3.3下的项TrailDate到2099-08-02

  3. 用cookie登录慕课网络教学中心刷评论

    声明:本文仅供学习参考 我们学校和的网络教学平台是在慕课网上的,需要登录到慕课网的教学平台以后,拿到cookie 注意:没次提交后需要休眠,否则刷评论过快会被系统发现 如果请求太快,很容易被系统发现( ...

  4. Arc077_E Guruguru

    传送门 题目大意 有$m$个点编号从小到大按照顺时针编成了一个环,有一枚棋子,每次移动可以选择顺时针移动到下一个或者直接移动到编号为$x$的点,现在有$n-1$次数操作,第$i$次要把棋子从第$A_i ...

  5. noip2017列队(线段树)

    维护一个方阵,支持 1.删掉一个点,剩下的点先向左看齐再向前看齐 2.询问一个位置上是哪个点 $n,m,q \leq 3 \times 10^5$ sol: 我们每行前$m-1$列维护一个线段树,最后 ...

  6. 1038 Recover the Smallest Number (30)(30 分)

    Given a collection of number segments, you are supposed to recover the smallest number from them. Fo ...

  7. ACM学习历程——ZOJ 3829 Known Notation (2014牡丹江区域赛K题)(策略,栈)

    Description Do you know reverse Polish notation (RPN)? It is a known notation in the area of mathema ...

  8. [转]angularjs的provider~ (Provider, Value, Constant, Service, Factory, Decorator)

    用AngularJS做项目,但凡用过什么service啊,factory啊,provider啊,开始的时候晕没晕?!晕没晕?!感觉干的事儿都差不多啊,到底用哪个啊?!别告诉我你们几个就是为了跟我炫耀兄 ...

  9. 【转】 Pro Android学习笔记(四九):ActionBar(2):Action图标区

    目录(?)[-] ActionBar的隐藏和现实 ActionBar的action图标区 ActionBar的隐藏和现实 ActionBar bar = getActionBar();bar.hide ...

  10. DevExpress 柱状图

    通过构造函数,把值传递过来 public XtraInterpreterChartForm(object ds) { InitializeComponent(); datasource = ds; } ...