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

作者:用户 来源:互联网 浏览:360 次 时间:2016-08-08 14:49:48

lass for ame

lass for ame-Class.fromName()的理解 - 摘要: Class.fromName()的理解Testt=newTest();和Testt=(Test)Class.forName().newInstance();有什么不同其中的Class.forName(

问题描述

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()

【云栖快讯】中办国办印发《推进互联网协议第六版(IPv6)规模部署行动计划》加快推进基于 IPv6 的下一代互联网规模部署,计划指出2025年末中国 IPv6 规模要达到世界第一,阿里云也第一时间宣布了将全面提供IPv6服务,那么在全面部署 IPV6 前,你需要了解都在这儿  详情请点击
云栖社区(yq.aliyun.com)为您免费提供lass for ame-Class.fromName()的理解相关信息,包括 lass for ame 的信息 ,所有lass for ame-Class.fromName()的理解相关内容均不代表云栖社区的意见! 该页面h5页面的地址是:https://m.aliyun.com/yunqi/wenzhang/show_65005,您可以点击lass for ame-Class.fromName()的理解-手机站访问。
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

开发者常用软件,超百款实用软件一站式提供

热点导航