`
programmer_Q
  • 浏览: 5658 次
社区版块
存档分类
最新评论

java反射机制 创建单例工厂

阅读更多
package Reflect;
/*如何编写工具类:
 * 方法一:
 * 1.把工具方法做成非static方法,
 * 2.把工具类做成单例的。
 * 那么要调用工具方法,必须先得到工具类。再调用方法
 * 方法二:
 * 1.把工具方法做成static方法
 * 2.把工具类所有构造器全部私有化,或者把工具加上abstract的。
 * 这么做的目的就是为了全部是类去调用工具方法。
 * 
 * */
//根据反射的对象工厂,专门用来生成对象。为了使其他方法类也可以使用该方法,特意将该方法抽取到该类中。
//单例模式:Enum
public enum BeanFactory {
	INSTANCE;
	public  <T>T getBean(String className,Class<T> checkType){						
		try {
			Class<T> clz=(Class<T>) Class.forName(className);
			Object obj = clz.newInstance();
			//需要检查checkedType是否是obj的字节码对象。
			if(!checkType.isInstance(obj)){
				throw new IllegalArgumentException("对象和类型不兼容");
			}
			return (T)obj;
		} catch (Exception e) {			
			e.printStackTrace();
		} 
		return null;
		
	}
}

 

调用测试如下:

import java.util.Date;

public class CreateInstanceDemo {
	public static void main(String[] args) throws Exception {
		Date d= BeanFactory.INSTANCE.getBean("java.util.Date", Date.class);
		System.out.println(d.toLocaleString());
		
	}
}

 

分享到:
评论

相关推荐

    设计模式之单例模式(结合工厂模式)

    将单例模式与工厂模式结合,可以创建一个单例工厂,这个工厂类负责生成单例对象。这样做有两个主要好处:一是隐藏了单例的实现细节,使得代码更加整洁,降低了耦合度;二是可以通过工厂方法扩展新的实现,如果将来...

    JAVA反射机制

    JAVA反射机制是JAVA编程语言中的一个核心特性,它允许运行中的程序动态地获取类的信息并操作类的对象。在JAVA中,反射机制提供了强大的能力,包括在运行时创建对象、访问私有成员、调用未知方法以及实现元编程等功能...

    Java单例模式与工厂模式简单示例代码

    4. **静态内部类**:利用JVM的类加载机制保证单例,既延迟初始化,又避免了同步,但是会涉及反射和序列化的问题。 ```java public class Singleton { private Singleton() {} private static class ...

    java反射机制

    Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、字段和方法等对象。这一机制对于理解和实践面向对象编程有着深远的影响,尤其是在动态类型、元数据处理以及框架设计等方面。...

    JAVA反射机制与动态代理综合资料

    Java反射机制是Java编程语言中的一个强大工具,它允许程序在运行时检查和操作类、接口、字段和方法的信息。动态代理则是Java提供的一种在运行时创建代理对象的技术,可以用于实现AOP(面向切面编程)或者为已有对象...

    java设计模式之单例模式

    线程不安全,多个线程可能同时创建单例对象。 ```java public class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null...

    设计模式之单例模式源码demo

    5. **枚举单例模式**:这是Java特有的单例实现方式,天然线程安全,且无法被反射破坏。 ```java public enum Singleton { INSTANCE; public void someMethod() {} } ``` 以上就是单例模式的常见实现方式,每种都...

    java 反射技术 设计模式 spring security 安全管理手册

    "Java反射机制.pdf"和"java反射技术.pdf"将深入解释反射的概念,如何获取类信息,如何动态调用方法,以及如何使用反射进行对象实例化。"设计模式:Java语言中的应用.pdf"将详细介绍各种设计模式,并给出实际应用示例...

    java中的反射reflect

    本文将通过实例深入解析Java反射机制。 首先,我们来看`TestParam.java`和`ParamClass.java`这两个文件,它们可能涉及到参数化类的使用。在Java中,反射可以帮助我们在运行时获取泛型信息。尽管Java的类型擦除导致...

    java 设计模式之工厂模式

    在软件开发中,设计模式是一种解决...Java反射机制的引入,为工厂模式提供了更大的灵活性,允许在运行时动态地创建和操作对象。理解并掌握这些概念,对于提升Java编程能力,尤其是设计大型、可维护的系统具有重要意义。

    JAVA 实用教程 JDP java 源码 动态创建

    1. **反射(Reflection)**:Java反射API允许我们在程序运行时检查类、接口、字段和方法的信息,甚至可以实例化对象、调用方法和修改字段值。这是动态创建的关键部分,因为它使我们能够在运行时发现并操作类的内部...

    单例设计模式_单例设计模式_

    5. 防止反射攻击:为了防止通过反射机制调用私有构造函数创建额外的实例,可以添加一个检查,确保只有在首次创建实例时才能进行。 6. 防止序列化攻击:如果单例类实现了Serializable接口,那么在反序列化时可能会...

    完整版缓存CacheManagerDemo+通过反射获取对象

    Java反射API允许程序在运行时检查类、接口、字段和方法的信息,并能够动态创建对象、调用方法、改变字段值。在缓存管理中,反射机制可以用来动态地获取和操作对象,比如根据类名实例化对象,或者在缓存中查找或设置...

    单例模式(singleton)

    这通常通过私有化构造函数和提供一个公共静态方法(称为单例工厂方法)来实现。在Java中,单例模式的实现有多种方式: 1. 饿汉式(Static Singleton):在类加载时就创建了唯一实例,线程安全,但可能会造成资源...

    单例模式

    最简洁且安全的单例实现方式,自动处理线程安全问题,防止反射和序列化攻击创建额外实例。 在Java并发编程中,单例模式的实现尤其需要注意线程安全问题。例如,使用 `volatile` 关键字可以解决多线程环境下可见性...

    单例模式_命令模式

    总结来说,单例模式保证了游戏规则管理器的唯一性,命令模式使得游戏逻辑可以通过命令对象进行灵活控制,而反射机制则实现了根据配置动态加载和执行命令。这种设计组合在`MyFirstGame v3.0`中展现了强大的灵活性和可...

    阿里巴巴 java面试题

    反射机制是 Java 语言中的一种机制,用于在运行时动态地创建对象。反射机制提供了多种方式来动态地创建对象,如 Constructor、Method、Field 等。 八、线程池 线程池是 Java 语言中的一种机制,用于管理线程的创建...

    JAVA核心知识点整理.zip

    8. **反射机制**:Java反射机制允许在运行时检查类、接口、字段和方法的信息,甚至可以动态调用方法和访问私有属性。这对于创建灵活和动态的应用程序非常有用。 9. **JVM内存模型**:理解Java虚拟机(JVM)的工作...

    java私塾跟我学系列-java篇

    9. **反射**:Java反射机制允许在运行时动态获取类的信息并操作类的对象,是Java的重要特性之一。 10. **泛型**:泛型是Java SE 5.0引入的新特性,增强了类型安全,减少类型转换的麻烦。 11. **注解(Annotation)...

    廖雪峰 Java教程文档.zip

    11. **反射机制**:Java反射机制允许程序在运行时动态访问类的信息,包括类、接口、构造器、方法等,是许多高级功能的基础。 12. **注解**:注解是元数据的一种形式,可以用于代码的解释或编译时的处理,教程会介绍...

Global site tag (gtag.js) - Google Analytics