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

作者:用户 来源:互联网 浏览:499 次 时间: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()

【云栖快讯】新手小白必看!编程语言系列讲座火爆进行中,与行业资深专家一起学习Python、C++、JavaScript、Java!从入门到进阶  详情请点击
云栖社区(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()的理解-手机站访问。
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

云服务器9.9元/月,大学必备

热点导航