java中如何用反射创建一个对象

问题描述

java中如何用反射创建一个对象

java中如何用反射创建一个对象 如何理解java的反射,反射是一种怎么样的机制呢

解决方案

楼上说的理论很多了,,给你来点实际的,,
Class clazz=Class.forName("test.User");
Object obj=clazz.newInstance();
这是用反射创建对象的方法之一,,也是最常用的

解决方案二:

反射主要做两件事情,一个是运行时创建(dc)(最典型的,插件程序,插件在主程序后被开发出来,主程序要创建插件对象,就不能在编译的时候用new写出来,必须在运行时反射创建),一个是运行时类型识别(rtti)(典型的,myeclipse能给你某个对象有什么方法、成员的列表提示,而显然这个过程也是运行时动态获取的)。
至于java如何反射,参考机器人的回答,以及自己google,不重复了。

解决方案三:

顺便说下反射的机制,java和C++不同,它在编译产生目标程序的时候,会把类型、方法原型、它的字段、函数名、函数地址等信息也放在可执行程序中,这些数据叫做元数据(metadata)
反射工作的原理就是读取程序中的这些信息,从而得到类型的各种数据。至于动态创建,可以通过检索元数据得到构造函数的函数地址,从而直接调用它创建对象。

解决方案四:

Java通过反射创建对象
java 反射的应用(将一个java对象转换成一个xml文件)
java 反射应用---创建对象

时间: 2024-10-30 15:27:24

java中如何用反射创建一个对象的相关文章

java当中能否通过对象创建一个对象

问题描述 java当中能否通过对象创建一个对象 如果可以的话,是不是通过一个对象调用其所在类的构造方法创建一个新的对象啊 解决方案 在java中创建对象,都必须调用构造函数.构造函数的调用包括直接的和间接的,但是必须调用. 解决方案二: 可以通过对象的方法创建对象,对象本身是物,不是动作. 解决方案三: 你说的是类似C++的拷贝构造函数新建对象? 解决方案四: 可以看看工厂模式,一个工厂类创建不同产品. 解决方案五: 不是有反射么?可以用反射啊 解决方案六: 创建一个java对象放到数组当中ja

Java中的类反射机制

一.反射的概念 :反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩.其中LEAD/LEAD++ .OpenC++ .MetaXa和OpenJava等就是基于反射机制的语言.最近,反射机制也被应用到了视窗系统.操作系统和文件系统中. 反射本身并不是一个新概念,它可能会使我们联想到光学中的反射概念,尽管计算机科学

java中对象调用方法返回一个对象的问题

问题描述 java中对象调用方法返回一个对象的问题 例如session.createQuery(hql); 那么这条语句返回的对象属于哪个类呢,如何判断呢? 解决方案 ctrl加鼠标点击createQuery,会有返回方法,或者你在通过session点的时候也可以看到返回方法. 解决方案二: 按住ctrl点击方法,自己去看方法的返回值. 解决方案三: 在java中将一个对象的所有方法打印出来java中远程对象方法调用中的安全策略问题java中返回局部对象问题 解决方案四: 事实上他返回的还是qu

在java中如何用绑定日期参数——用下拉列表实现

问题描述 大家好啊,最近做一个系统,上面有注册页面,就是平常我们在其它网站上看到的一样,我想用下拉列表实现日期参数"年""月""日"的绑定,还有省市的动态绑定,我以前在ASP.NET中完成过这功能,在java中应该不一样吧,特别是我对java里面很多日期函数都不是很了解,要是用原码的话,能发一下吧??谢了 解决方案 解决方案二:这个得去看struts2用struts2的标签都可以实现日期绑定用<s:date/>或者<s:date

java中如何用数组的方法存放职员的信息,实现成员的增删改查

问题描述 提供一下代码,参考参考,新手才学java,请大神指教 解决方案 解决方案二:建议用泛型吧.list<user>创建一个user的bean.

java中如何用&amp;amp;lt;c:foreach&amp;amp;gt;迭代出list集合中的map集合中的value值

问题描述 action中的代码片段: int i = 0; Map map = new HashMap(); List list = new ArrayList(); map.put(i,ci); //ci是个Book对象 i++; list.add(map); session.put("list",list); //实现了SessionAware接口那么我在JSP页面中要如何迭代出ci中的各个属性啊?或者我action哪里写错了?<c:forEach items="$

JAVA中如何用TRANSACTION来对数据库进行一系列的操作

数据|数据库 TRANSACTION的作用:比如有一般的格式.try{conn.setAutoCommit(false);Statement stat = conn.createStatement();stat.executeUpdate(command1);stat.executeUpdate(command2);stat.executeUpdate(command3);. . .:stat.addBatch(command);上面的还可以换成是下面这样./*while (. . .){ co

急!mapxtreme java中如何用标签显示比例尺?

问题描述 我是mapxtreme新手,想用自带的jsp标签来显示地图的比例尺,如何实现?请高手不吝赐教,先谢过!

赋值-java中如何创建一个对象的副本

问题描述 java中如何创建一个对象的副本 java中基本类型赋值是传递的是值,也就是创建了一个副本,而对象赋值时传递的是引用,那么java中对象能不能创建副本?如何创建 解决方案 需要你自己实现一个clone方法,然后new一个对象,再依次复制每个字段.你可以用反射或者序列化再反序列化的方法简化复制对象的编程. 解决方案二: http://www.cnblogs.com/yxnchinahlj/archive/2010/09/20/1831615.html 解决方案三: 你可以赋值给一个新对象