lass for ame-Class.fromName()的理解

问题描述

Class.fromName()的理解

Test t=new Test();
和Test t=(Test)Class.forName().newInstance();
有什么不同 其中的Class.forName()有代表什么
对于Class.fromName()不太理解 请大神指点

解决方案

Test t=new Test();
和Test t=(Test)Class.forName().newInstance();
这样写的确没什么区别,看上去后者还麻烦一点。

但是我昨天回答你了。有时候我们没法知道类型,只能反射。

思考下这样两个场景,场景1:你在编写一个开发环境,要求用户导入一个类,你可以在编辑器中给出这个类有什么方法,有什么参数之类的提示,那么这个类的类型不可能在你开发编辑器的时候知道。

也就是Test你不能这么写。它在你的代码中没有。那怎么创建实例怎么调用?只能用object类型。可是object类型没有办法new出一个实际上test的类型,就需要反射了。

再比如场景2:你编写的程序允许第三方开发插件,或者你本身就是一个插件容器。好比Spring。那么它怎么能new你的bean出来呢?显然还是要通过反射。你用配置文件以字符串的形式写出类名,程序根据它创建实例,那就要Class.fromName()

时间: 2024-08-31 15:17:45

lass for ame-Class.fromName()的理解的相关文章

AME评价互动营销实效 腾讯智慧方法论成首选

腾讯智慧"MIND"方法论作为亚洲实效营销节评审标准 在本次营销节上,最大亮点是AME首次选用腾讯智慧"MIND"方法论中可衡量的效果(Measurability).互动式的体验(Interactive Experience).精确化的导航(Navigate)以及差异化的定位(Differentiate)四个维度作为最具实效互动营销(Most Effective Use of Interactive Marketing)奖项的评审标准,用来奖励包括香港.台湾.中国大

C/C++:如何理解复杂的声明

http://blog.chinaunix.net/u/12783/showart_378340.html   C/C++:如何理解复杂的声明 这里说的声明,不光适用于C/C++,其他的一些语言也能适用. 与java和C#等不同,声明和定义在C/C++中有着比较明显的区别:声明仅仅是介绍名字(introduce names),而定义则会为该名字分配相应的空间.打个通俗的比喻:声明就是你在谈话中提到某个人的名字,而定义就是把你提到的这个人带到谈话的人群中来,让大家见识一下他/她是什么样子. 这里主

编程-我这个有不理解的地方帮我讲讲好吗?

问题描述 我这个有不理解的地方帮我讲讲好吗? #include ""mainwindow.h""#include ""ui_mainwindow.h""#include <QTextFrame>#include <QDebug>#include <QLineEdit>#include <QDialog>#include <QPushButton>#include &l

HTTP协议是无状态协议,怎么理解

HTTP协议是无状态协议,怎么理解?   Http是一个无状态协议,同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的所有信息外,该环境不保存与会话有关的任何信息.  自己的理解,在asp.net里:每次提交服务器的页面没有任何关系,每次记录在页面的信息下次提交是记不住的,(除了应用本身可能已经存储在全局对象中的所有信息外)在.net里实际就是ViewState,ViewState是asp.net中保存页面信息的基本单位,应用时就是保存在控

理解finalize()-析构函数替代者

函数 理解finalize()-析构函数替代者   在许多方面,Java 类似于 C++.Java 的语法非常类似于 C++,Java 有类.方法和数据成员:Java 的类有构造函数: Java 有异常处理.       但是,如果你使用过 C++ 会发现 Java 也丢掉一些可能是你熟悉的特性.这些特性之一就是析构函数.取代使用析构函数,Java 支持finalize() 方法.       在本文中,我们将描述 finalize() 与 C++ 析构函数的区别.另外,我们将创建一个简单的 A

关于初学者对于docker的一些。。理解

有错希望指正.. 我的目的:能一键部署需要的服务和功能 现在有了目的..其实是朋友告诉我这东西可以快速部署环境觉得比我那样一次次搞方便 然后我就是一个0基础的小白新手了..反正我也是刚刚毕业需要学习这些东西虽然公司只是传统行业用不上..但是总会跳到我想要的互联网环境的.. 首先,我知道了docker的镜像每次启动都会产生一个容器,就算是同一个镜像启动两次也会产生两个容器..而且在前一个容器的操作关闭后再次打开这个镜像..又还原了..想保存你对容器的修改就要用到docker commit <容器i

ip-《TCP/IP 详解卷一》中90页中讲到,“由于子网号不相同,代理ARP不能使用”,这怎么理解?

问题描述 <TCP/IP 详解卷一>中90页中讲到,"由于子网号不相同,代理ARP不能使用",这怎么理解? <TCP/IP 详解卷一>中90页中讲到,"由于子网号不相同,代理ARP不能使用",这怎么理解? 解决方案 ARP主要用在一个子网中,用MAC地址来通信.数据链路层 不同子网,需要通过三层路由 解决方案二: 比如 N1 <-> GW <-> N2,N1和N2是同一个子网,GW上开启arp代理的效果是,N1和N2上

java-《深入理解Java虚拟机》有关methodHandle的代码问题?

问题描述 <深入理解Java虚拟机>有关methodHandle的代码问题? 以下代码书上说是输出"i am grandfather",但远行实际输出为"i am father" class Test { class GrandFather { void thinking() { System.out.println("i am grandfather"); } } class Father extends GrandFather {

RESTful再理解

目录 目录 前言 RESTful的目的 REST的含义 表现层 状态转化 无状态协议HTTP 最后 前言 这是在经过一段时间的积累后,对RESTFul框架的再一次更深入的理解.希望能够将零散的知识点连接成线,相织成面. RESTful的目的 RESTful由Roy Thomas Fielding在2000年提出,旨在探索两大计算机学科方向–软件&网络 的交叉点. 软件开发:关注软件设计的分类.设计方法的实现. 网络开发:关注系统之间的通信行为的细节和如何改进特定通信机制的表现. 在传统的行业环境