`
hubin4
  • 浏览: 96267 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

for java beginner 15 下java反射在框架里的应用 读取properties文件

    博客分类:
  • JAVA
阅读更多
java 框架基础

-------------------
框架这个词算是 比较 贴切的,就像房子的骨架
门和窗让用户自己安装,他们喜欢什么样式款式用户定

★框架和工具类的区别:
工具类被 用户写的类 调用
框架是 调用 用户写的类

那写大师们写框架时,我们可能还在上幼儿园,
大师们也不会知道我们到时候会写出什么样的类来

所以,框架里不可能说用 new来弄一些类的实例,
只能让我们告诉框架 我们写的类叫什么,让框架反射吧!

大师们也不知道我们写出的类会是怎么样的五花八门,
所以,JAVABEAN规范 规定了我们 有默认的无参数构造函数啊.
get set 方法啊.......等等


---------------------
用反射有很大的好处,
对于用户,他们很可能没有javac ,有了也不会用,
但是他们有notepad吧,修改XML properties文件可以吧..


--------------------
config.properties
#className=java.util.ArrayList
className=java.util.HashSet

-----------------------
package com.ncs;

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Properties;

public class ReadProperties {
	//介绍反射的好处
	//比方说我不写死,写一个 米你 框架,接受用户在配置文件里写的类
	//配置文件写在 工程目录底下,不是src下 和src兄弟级
	public static void main(String[] args) throws Exception {
		//load properties file
		InputStream is = new FileInputStream("config.properties");
		
		//Properties在java.util.Properties;下,
		//这个类有个功能,可以把里面的 键值对 存到硬盘上
		//也可以把disk上的很多东西读进来
		Properties properties = new Properties();
		properties.load(is); //加载了
		is.close(); //好习惯
		
		
		String className = properties.getProperty("className");//良好的命名习惯
		
		//Collection collection = new ArrayList(); 现在不用写死了
		Collection collection = (Collection)Class.forName(className).newInstance();
		String test = "hubin";
		collection.add(test);
		collection.add(test);
		collection.add(test);
		
		System.out.println(collection.size()); //3 因为在培植文件里是ArrayList
		//System.out.println(collection.size()); //1 因为在培植文件里是java.util.HashSet
		
	}
}
分享到:
评论
1 楼 superlittlefish 2010-08-02  
不错,简单易懂.一直在看你的blog,感觉反射写的挺好的.让我这种菜鸟都看明白了,谢谢您的blog.希望您能够多写一些技术博客,我会一直关注的.

相关推荐

    java for the beginner

    introduce in english

    Java A Beginner's guide

    在第六版中,席尔德特提供了全面的Java入门知识,其中包括Java基础、面向对象的概念、异常处理、文件I/O、多线程、网络编程、Java集合框架以及Java的新特性介绍等。席尔德特通常在自己的书籍中详细解释概念,并辅以...

    JAVA A beginner's guide sixth edition

    1. Java语言介绍:Java是一种高级编程语言,广泛应用于企业级应用、移动应用和Web服务等领域。Java具有面向对象、平台无关、安全性高和稳定性强等特点,是初学者学习编程的常见选择。 2. Java初学者指南:《JAVA A ...

    Java: A Beginner's Guide 5th Edition

    Fully updated to cover Java Platform, Standard Edition 7 (Java SE 7), Java: A Beginner's Guide, Fifth Edition starts with the basics, such as how to compile and run a Java program, and then discusses...

    Java and Algorithmic Thinking for the Complete Beginner – Compact Edition

    This book is for anyone who wants to learn computer programming and knows absolutely nothing about it. If you are wondering whether this book is going to teach you how to create amazing applets or ...

    Java A Beginner's Guide(6th) 无水印pdf

    Java A Beginner's Guide(6th) 英文无水印pdf 第6版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系...

    Java2:A Beginner's Guide Second Edition 原版 pdf

    对于输入/输出(I/O)操作,Java提供了丰富的类库,如File类和Scanner类,使文件读写变得简单。网络编程也是Java的一大特色,书中的相关章节会介绍Socket编程,使读者能够创建基于TCP/IP的客户端和服务端应用程序。 ...

    Java_Programming_for_the_Absolute_Beginner.rar_absolute java_jav

    在提供的压缩包文件中,"Java Programming for the Absolute Beginner.pdf"可能是主要的学习资料,可能包含了上述所有概念的详细讲解。"More.txt"和"Read.txt"可能包含额外的信息,如补充说明、练习题或者阅读指南,...

    Pentaho 8 Reporting for Java Developers azw3

    Pentaho 8 Reporting for Java Developers 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Java Programming for the Absolute Beginner

    5. **输入输出流**:介绍I/O流的概念,包括文件读写、标准输入输出和对象序列化。 6. **集合框架**:学习ArrayList、LinkedList、HashSet、HashMap等集合类的使用,以及泛型的概念。 7. **多线程**:理解并发编程...

    Java-Programming-for-Beginner:书

    10. **IO流与NIO**:Java的IO流系统用于读写文件和网络通信,而NIO(New IO)提供了一种更高效的方式处理数据输入输出。 11. **多线程**:Java内置对多线程的支持,了解如何创建线程、同步线程以及线程间的通信是...

    Java - Java A Beginner's Guide 9th edition

    ### Java - Java A Beginner's Guide 9th edition #### Java基础知识概述 本书旨在为初学者提供全面、深入的Java编程入门指导。Java是一种广泛使用的面向对象编程语言,它以其跨平台性、安全性以及丰富的类库支持...

    Java 7 A Beginner’s Tutorial, 3rd Edition.pdf

    - ASCII 和 Unicode 字符集的区别及其在 Java 中的应用。 - 如何处理非英文字符和国际化问题。 - **分隔符:** - 介绍了 Java 中的分隔符,如逗号、分号的作用。 - 解释了分隔符对于语句结构的重要性。 - **...

    java2 A Beginner‘s Guide

    9. **集合框架**:讲解Java集合框架的使用,包括List、Set、Map等容器类的特性及应用。 10. **反射与注解**:探讨Java的高级特性,如反射机制和注解的使用,以及它们在代码动态性和元数据处理中的作用。 ### 学习...

    Java A Beginner’s Guide(7th) epub

    Java A Beginner’s Guide(7th) 英文epub 第7版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Java - Java- A Beginner’s Guide - 7th edition

    ### Java - Java: A Beginner’s Guide - 7th Edition #### Java Fundamentals **起源与发展:** Java 语言起源于1990年代初期,在Sun Microsystems由James Gosling领导的一支团队开发。Java的设计目标是创造一种...

    java beginner guide

    - **应用领域**:Java广泛应用于Web应用、移动应用(尤其是Android应用)、大型企业系统、服务器端应用等领域。 #### 二、Java环境搭建 - **JDK安装**:Java Development Kit (JDK) 是Java编程的基础,包含了...

    Java A Beginner's Guide(6th) epub

    Java A Beginner's Guide(6th) 英文epub 第6版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

Global site tag (gtag.js) - Google Analytics