1框架与框架要解决的核心问题
比如 我做房子卖给用户,由用户自己去安装窗和们 我做的房子就是框架 用户需
要实用我的框架 把门和窗户插入到我的房子里面
框架与工具类有区别?
工具类被用户的类调用 内框架则是调用用户提供的类
2 框架要解决的核心问题
我在做房子(框架)时,你这个用户可能还在上小学 还不会写程序呢 我的框架怎
么去调用你以后写的类(门窗)呢?
因为在写程序时无法知道要调用的类名 所以 在程序中无法直接new 某个类的实例
出来 而要通过反射的方法来实现
3 通过类加载器 去找到配置文件的路径
下面通过配置文件写一个小例子
package com.sg.reflex; import java.io.InputStream; import java.util.Collection; import java.util.Properties; public class FrameReflexTest { public static void main(String[] args) throws Exception{ //首先加载配置文件 config.properties在这里直接放在工程的目录下面了 //一般放在新建的某个包文件下面 通过绝对路径去找到 //InputStream ips = new FileInputStream("config.properties"); //通过类加载器 去找到配置文件的路径 加入配置文件放在了 //InputStream ips = FrameReflexTest.class.getClassLoader().getResourceAsStream("com/sg/config/config.properties"); //还可以使用 前提是和你的类在同一个包下面就可以不用下包名 直接写文件名 InputStream ips = FrameReflexTest.class.getResourceAsStream("config.properties"); Properties properties = new Properties(); properties.load(ips); properties.clone(); //获取配置文件的key为className的value值 String className = String.valueOf(properties.get("className")); //通过反射newInstance()实例化 Collection collections = (Collection) Class.forName(className).newInstance(); ReflecClassPoint rcp1 = new ReflecClassPoint(3, 3); ReflecClassPoint rcp2 = new ReflecClassPoint(5, 5); ReflecClassPoint rcp3 = new ReflecClassPoint(3, 3); //把这些对象 放到集合中去 collections.add(rcp1); collections.add(rcp2); collections.add(rcp3); collections.add(rcp1); System.out.println(collections.size()); } }
相关推荐
3. **框架与工具支持**:许多现代Java框架(如Spring、Hibernate等)都广泛使用了反射技术,以提供更加灵活和可扩展的功能。 #### 三、反射的应用场景 1. **框架开发**:在框架开发中,反射被用来动态创建对象、...
Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、对象等的内部信息。这一机制对于理解和实现高级框架、动态代理、元数据处理等场景至关重要。以下是对Java反射机制的详细说明:...
Java反射机制是Java语言提供的一种强大特性,它使得程序可以在运行时动态地获取类的信息并直接操作对象的内部属性和方法。这种能力使得Java具备了一种动态语言的灵活性。 #### 二、Java反射机制的功能 Java反射...
例如,如果你有一个名为`config.properties`的配置文件,你可以在代码中使用`getClass().getResource("/config.properties")`来获取其URL。 接下来,Java反射是Java语言的一大特性,它允许程序在运行时检查类的结构...
在Java编程中,类反射机制是一种强大的工具,它允许程序在运行时检查并操作类的信息,包括类的方法、属性和构造器。这个机制是Java动态性的重要体现,它使得我们能够在不知道具体类名的情况下,创建对象并调用其方法...
以上就是关于动态编译和加载Java类的一些核心知识点,这些技术大大提升了Java应用的灵活性和适应性,但同时也需要开发者对Java的类加载机制、安全性和性能有深入理解,才能有效地运用到实际项目中。
2. **理解Java反射机制原理**:了解Java反射机制的基础概念,学会使用反射机制中的基本方法。 3. **掌握动态获取对象、设置属性和调用方法的步骤**:熟练运用配置文件和反射机制来动态获取对象实例、设置对象属性...
java.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。 java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供...
这种能力对于开发框架和库尤其有用,因为它提供了灵活性,可以在运行时根据配置文件或其他输入动态加载和使用不同的类。 #### 完全限定名(Fully Qualified Class Name) 一个类的完全限定名是指包含包名和类名的...
本文将深入探讨如何使用反射获取注解以及如何在Spring框架中获取特定包下的所有类文件。 首先,让我们看看如何通过反射获取注解。在Java中,注解是一种元数据,它提供了向编译器或JVM提供有关代码额外信息的方式。...
总结起来,动态生成、编译和运行Java文件是Java开发中的高级技巧,它涉及到源代码生成、Java Compiler API、自定义ClassLoader和反射等多个核心概念。理解并熟练掌握这些技术,能够帮助开发者构建更加灵活和强大的...
9. **反射机制**:利用反射动态地获取类的信息并调用其方法,实现动态加载和类型检查。 10. **JNI(Java Native Interface)**:允许Java代码和其他语言写的代码进行交互,比如调用C/C++库。 然后,我们来看看Java...
在Java Web开发中,Servlet和注解是两个重要的概念,它们极大地简化了代码编写和管理。本示例“servlet反射注解例子”旨在帮助我们深入理解如何将这两种技术结合使用,以实现更加灵活和可维护的服务器端应用程序。...
java.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。 java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供用于...
java.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。 java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供用于...
【Java学习PPT】是一个集合,包含了多个关于Java Web技术和框架的教程材料,如Servlet、JSP、Hibernate、Spring等。这些PPT文档是深入理解并掌握这些关键领域的重要资源。 1. **Servlet**:Servlet是Java Web开发中...
5. 学习反射机制,理解类加载机制,以及注解的使用和自定义。 三阶段:Web前端技术 此阶段重点是前端开发,包括HTML、CSS和JavaScript: 1. HTML基础知识,创建基本网页结构,学习表格、表单等元素。 2. CSS的学习...
根据提供的文件信息,“Java开发从入门到骨灰”这一标题及描述强调了教程全面覆盖了Java编程语言的基础至高级知识。接下来将详细解读并总结出该教程可能涵盖的关键知识点。 ### Java开发基础知识 #### 1. Java语言...
7. **反射与注解**:反射机制使得在运行时可以动态地获取类的信息并操作类的对象,而注解提供了元数据的功能,增强了代码的可读性和自解释性。 8. **设计模式**:了解并能应用常见的设计模式,如单例、工厂、观察者...