在java编程中经常遇到这样的问题
1、已经一个类的实例,判断这个实例是不是某个类的对象;
2、已知一个类的实例,想创建一个和此实例类型相同的对象,尤其当这个实例类型可能动态的时候。
介绍一个关键字和两个函数
instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例。
示例见newInstance;
getClass() Returns the runtime class of this Object.即返回一个实例运行时类型。
示例代码如下:
String stringInstance = new String();
Object objectInstance = stringInstance.getClass().newInstance();
System.out.println(objectInstance.getClass().getName());
Object objectInstance2 = new Object();
System.out.println(objectInstance2.getClass().getName());
输出结果:
java.lang.String
java.lang.Object
参考:http://download.oracle.com/javase/6/docs/api/java/lang/Object.html#getClass()
newInstance() Creates a new instance of the class represented by this Class object.穿件一个class的实例
代码如下:
String stringInstance = new String();
Object objectInstance = stringInstance.getClass().newInstance();
if (objectInstance instanceof Object)
System.out.println("ob是一个Object实例");
if (objectInstance instanceof String)
System.out.println("ob是一个String实例");
输出结果:
ob是一个Object实例
ob是一个String实例
参考:
http://download.oracle.com/javase/6/docs/api/java/lang/Class.html#newInstance()
至此以上两个问题都解决
分享到:
相关推荐
Java动态代理是Java语言提供的一种在运行时创建代理对象的技术,它允许我们为已存在的接口创建代理类,以便在调用真实目标对象的方法时添加额外的功能或行为。在这个实例中,我们将深入探讨Java动态代理的核心概念,...
JAVA3D官方实例对于初学者来说是一份宝贵的资源,它不仅能够帮助理解JAVA3D的基本概念,还能够通过实例演示如何在Eclipse这样的集成开发环境中实际操作。 首先,JAVA3D的核心在于其面向对象的编程模型,它允许...
本实例主要讲解了如何通过Java调用动态库(DLL),特别是使用JNA(Java Native Access)和JNative两种不同的库来进行操作。下面我们将详细探讨这两个库以及它们在不同场景下的应用。 1. JNA(Java Native Access) ...
Java枚举(enum)是Java语言中的一种特殊数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中被引入,目的是为了更好地管理和使用常量,提高代码的可读性和安全性。在本实例代码中,...
11. **反射机制**:通过反射可以动态访问类的信息,创建对象,调用方法,改变字段值。 12. **集合框架**:深入理解List、Set、Queue等接口,以及它们的实现类,例如ArrayList、LinkedList、TreeSet、PriorityQueue...
在编程世界中,Java是一种广泛使用的面向对象的编程语言,以其跨平台的特性、丰富的类库和高效性能而备受青睐。...建议初学者逐一运行这些实例,理解其工作原理,并尝试修改和扩展它们,以此加深对Java编程的理解。
在实例中,可能有创建一个"Teacher"类,继承自"Person"类,这样"Teacher"就自动获得了"Person"的所有属性和方法。 3. 多态:多态性允许一个接口调用不同的实现,增加了代码的灵活性和可扩展性。比如,一个方法接受...
总之,"Java项目开发实例"是一个宝贵的资源,它将理论知识与实践经验相结合,帮助开发者快速提升Java项目开发能力,理解并掌握实际项目中的常见问题和解决方案。通过仔细研究和实践这些源码,不仅可以巩固基础,还能...
本资源“Java高级编程实例 100个”提供了丰富的实践案例,旨在帮助初学者深入理解并熟练应用这些高级特性。 1. **多线程**:在Java中,多线程是并发执行任务的基本方式。学习如何创建Thread类的子类,使用Runnable...
"75个Java实例"提供了一系列的代码示例,旨在帮助初学者和有经验的开发者更好地理解和掌握Java语言的核心概念及实际应用。这些实例涵盖了从基础语法到高级特性的各种主题,包括但不限于: 1. **基础语法**:Java的...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
总的来说,虽然Java中的抽象类不能直接实例化,但我们可以通过继承并实现其抽象方法,或者利用字节码工具和注解处理器在运行时或编译时动态生成新的类来间接达到实例化抽象类的目的。这样的设计允许我们创建更加灵活...
- 反射机制是在运行时分析类的能力,它允许我们获取类的信息(如类名、方法、属性等),甚至能够在运行时动态创建对象并调用其方法。 - 主要用途包括:动态加载类、处理未知类型的对象、实现元编程、插件系统、...
比如,一个实例可能教你如何创建一个文本文件,并将用户输入的数据写入其中。 Java集合框架是另一个关键主题,包括ArrayList、LinkedList、HashMap等数据结构。这些实例可以帮助你理解如何存储和操作数据集,以及...
13. **反射机制**:Java的反射机制允许在运行时检查类的信息,创建和调用类的对象,这对于动态加载类和实现元编程非常有用。 14. **Java标准库**:Java SE(标准版)包含大量标准库,如`java.util`、`java.net`、`...
在"**selenium java实例**"中,可能包含以下步骤: 1. **引入依赖**: 首先,我们需要在项目中引入Selenium的Java库,这通常通过Maven或Gradle的依赖管理完成。 2. **创建WebDriver对象**: 初始化一个WebDriver对象...
Java是一种广泛使用的面向对象的编程语言,以...通过实践这些小实例,你可以逐步提高自己的编程技能,并对Java有更深入的理解。记得理论与实践相结合,遇到问题不要怕,多思考、多查资料,你会在Java的世界里不断进步。
在Struts2框架下,我们可以创建一个Action,设置返回结果类型为"stream",并在Action中提供文件流。 关于标签中的"java下载实例",这可能包含了如何处理二进制流,确保文件完整无损地传输给用户。在处理大文件时,...
标签包括“JAVA”、“JAVA作业”、“JAVA上机实例”、“JAVA经典实例”、“JAVA实例”,这表明这个压缩包的内容适用于Java学习者的各种需求,包括课堂作业、实践操作以及深入理解Java的经典案例。 从压缩包子文件的...
Java支持多线程,你可以通过实例学习如何创建和管理线程,理解同步和互斥的概念,以及使用synchronized关键字和Lock接口。 总之,"220个Java初学者实例源码"提供了一个全面的学习平台,覆盖了Java编程的各个方面。...