`

Java中 class<?> 创建对象

 
阅读更多
class A{
    A(){ /五惨构造器
    }
     
    String name; //A的一个属性
    int id;//A的一个属性
    A(String name){ //含有一个String类型的构造器
    this.name = name;
    id = 0;
    }
     
     
    A(int id,String name){
    this.id = id;
    this.name = name;
    }
}
 
 
A functionA() throws Exception{ //注意必须抛出或捕获异常 
 Class<?> aClaz = Class.forName("A") ;//获取A的Class对象,注意这里必须是包名+类名
 //或你可以用下面的方法创建class对象
 //Class<?> aClaz = A.class; //注意Class的大小写,这个方法优于上面的方法
  
 创建A的一个实例,通过五惨构造器
 A a = (A)aClaz.newInstance(); //newInstance 是Class的方法,
 //他是利用Java反射生成一个对象,但是类型是Object的,所以我们要加上强制转换
 return a; 
}
 
A functionA(String name)throws Exception{
    //遇到有参构造器就不能直接newInstance了,我们必须获取Constructor对象
    Class<?> aClaz = Class.forName("A") ;
     
    //获取构造器,参数类型是String的Class类型
    Constructor con = aClaz.getConstructor(String.class);
     
    //利用构造器生成对象,并传入参数name
    A a = (A)con.newInstance(name)
     
    return a;
}
分享到:
评论

相关推荐

    Java测试题2答案

    &lt;br&gt;B 内存回收程序负责释放无用内存&lt;br&gt;C 内存回收程序允许程序员直接释放内存&lt;br&gt;D 内存回收程序可以在指定的时间释放内存对象&lt;br&gt;11.下列代码哪几行会出错: c&lt;br&gt;1) public void modify() {&lt;br&gt;2) int I, j, k;...

    springmvc-jdbcTemplate

    List&lt;Map&lt;String, Object&gt;&gt; list = join(condition, orders, classLink); if(list == null) { return null; } List&lt;R&gt; ret = new ArrayList&lt;R&gt;(); for (int i = 0; i &lt; list.size(); i++) { ret.add...

    Java测试题4答案

    《Java测试题4》&lt;br&gt;&lt;br&gt;Java练习题&lt;br&gt;一、填空&lt;br&gt;1、 对象的状态和行为是对象的主要属性;前者对应类的 ,行为又称为对象的操作,对应着类的 。类的定义包括 声明和 声明。&lt;br&gt;2、 要嵌入在HTML文件中运行的程序...

    Java学习题答案

    对象成员变量在对象创建时会获得一个缺省的初始值.&lt;br&gt;5.Java数组随时可以改变大小.&lt;br&gt;6.InputStream和OutputStream读写的数据是8位的.&lt;br&gt;7.Java是强类型语言.&lt;br&gt;8.Java没有指针,引用不能等同于...

    程序设计基础答案

    〖程序设计基础〗练习题1&lt;br&gt;一、选择题(每题1分,共30分)&lt;br&gt;下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。&lt;br&gt;1.以下的选项中能正确表示Java语言中的一...

    Java2+类库参考手册-pdf

    &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; 本书由Java技术的创建者编写,对Java 2平台标准版,V1.2中新增加的包及类进行了描述。本书主要由包概述和类描述构成。包概述对每个包及其所有类进行了简要描述,另外还画出了包中的类的继承层次...

    ibatis 开发指南(pdf)

    &lt;br&gt;使用ibatis 提供的ORM 机制,对业务逻辑实现人员而言,面对的是纯粹的Java 对象, &lt;br&gt;这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate &lt;br&gt;会自动生成SQL 语句,而ibatis 则要求...

    JSTL详细标签库介绍

    隐含对象&lt;/A&gt; &lt;LI&gt;&lt;A title=谈自定义Exception进行错误处理 href="http://www.jspcn.net/htmlnews/11500776135931403.html" target=_blank&gt;谈自定义Exception进行错误处理&lt;/A&gt; &lt;LI&gt;&lt;A title="When&nbsp;...

    org.apache.tools.zip解决解压乱码问题

    * 类名: ZipUtil.java&lt;br&gt; * 描述:压缩/解压缩zip包处理类&lt;br&gt; * 创建者:XXX&lt;br&gt; * 创建日期:2015年5月7日 - 下午1:35:02&lt;br&gt; * 版本: V0.1 &lt;br&gt; * 修改者: &lt;br&gt; * 修改日期:&lt;br&gt; */ public class ...

    Javashop开发规范V2.2

    &lt;ul&gt;&lt;li&gt;&lt;a class="selected"&gt;1&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="search-cat-4-page-2.html" class="unselected"&gt;2&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="search-cat-4-page-3.html" class="unselected"&gt;3&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="search-cat...

    maven的优缺点 项目

    将Service层以下的代码放到一个新创建的java项目中,在部署的时候将Service(java项目)打成一个jar包,分别放到两个web服务中;编译的时候让web项目依赖与Service(java项目)_source folder;配置麻烦,项目与项目之间的...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅...

    \java超强笔记(超级经典)

    public class MyExpection&lt;T&gt; extends Exception{ } //编译错误 可以抛出(throws)泛型类,但catch的参数不能是泛型类。 注意: 编译时类型的泛型和运行时类型的泛型一定要一致,没有多态。 ...

    hibernate配置

    &lt;property name="数据库中表的其它字段所对应的持久化对象中的属性名" column="对应数据库中表的其它字段名" type="java.lang.String(数据库中其它字段的数据类型)"/&gt; &lt;/class&gt; &lt;/hibernate-mapping&gt; 三.配置...

    时间格式化类库PrettyTime.zip

    完全可定制,可以创建属于自己TimeUnit和TimeFormat对象。能够与JSF框架集成使用。 示例代码: import java.util.Date; import com.ocpsoft.pretty.time.PrettyTime;   public class BasicJavaApp { ...

    DWR开发包常规客户端服务器端面向对象编程

    -- 通过NEW创建对象 --&gt; &lt;create creator="new" javascript="JDate"&gt; &lt;param name="class" value="java.util.Date"/&gt; &lt;/create&gt; &lt;!-- 通过Spring反射对象 --&gt; &lt;create creator="spring" javascript=...

    Java IO学习文件处理

    * 1、创建输入(输出)流对象 * 2、读(写)数据 * 3、关闭输入输出流 */ public static void main(String[] args) { // TODO Auto-generated method stub Map&lt;String,List&lt;String&gt;&gt; map = new ...

    kellerMapper.jar

    &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt; &lt;scope&gt;runtime&lt;/scope&gt; &lt;/dependency&gt; &lt;/dependencies&gt; 目录结构 mybatis:MyBatis 通用 Mapper 相关 annotation:注解相关 FieldAttribute.java:字段...

    java排序代码

    class MyTreeSetCompartor implements Comparator&lt;Object&gt; { // 实现compare方法 @Override public int compare(Object o1, Object o2) { String str1 = String.valueOf(o1); String ...

    oscache-2.4.1-full.rar

    &lt;br/&gt;&lt;br/&gt;public class CacheManager {&lt;br/&gt; &lt;br/&gt; private BaseCache newsCache;&lt;br/&gt;&lt;br/&gt; &lt;br/&gt; private static CacheManager instance;&lt;br/&gt; private static Object lock = new Object();&lt;br/&gt; &lt;br/&gt; public ...

Global site tag (gtag.js) - Google Analytics