Java 反射机制 与 工厂设计模式( 二 )
使用泛型解决解决第二个问题 。 【Java 反射机制 与 工厂设计模式】 package DemoRunable.example; import java.io.IOException;public class FileDemo {public staticvoid main(String args []) throws IOException, ClassNotFoundException {System.out.println();IFood food = Fatory.eFood("DemoRunable.example.Break",IFood.class);food.eat();IOther other = Fatory.eFood("DemoRunable.example.OtherOne",IOther.class);other.send();} }interface IFood{public abstract void eat();// 食物核心作用 被食用 }class Break implements IFood{@Overridepublic void eat() {System.out.println("手撕面包");} }class Milk implements IFood{@Overridepublic void eat() {System.out.println("喝牛奶");} } interface IOther{public abstract void send(); } class OtherOne implements IOther{@Overridepublic void send(){System.out.println("开心");} }class OtherTwo implements IOther{@Overridepublic void send(){System.out.println("很开心");} } class Fatory{/*** 因fatory 没有属性 因此定义static方法。* 获取IFood接口实例化对象 , 利用此方法对外隐藏子类*/private Fatory(){} // 工厂类 , 没有产生实例化的意义 , 避免产生实例化对象——构造方法私有化/**** @param className 实例化对象名称* @param clazz 返回实例化对象类型* @param泛型 , 使得工厂类适用所有类型* @return 如果子类存在则返回指定类的接口实例化对象*/public staticT eFood(String className,Class clazz) {T food = null;try {food = (T) Class.forName(className).getDeclaredConstructor().newInstance();} catch (Exception e) {e.printStackTrace();}return food;}}
- 信息|澜湄合作机制开通水资源合作信息共享平台
- 现状|程序员现状揭秘:平均年薪20.36万,Java人才需求量最大
- 程序员学英语第1天——JavaScript 程序测试的介绍1
- 三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经
- 《深入理解Java虚拟机》:对象创建、布局和访问全过程
- 机制|反马赛克机制问世,这种软件应该被禁止吗
- java面试题整理
- Kotlin集合vs Kotlin序列与Java流
- Java安全之Javassist动态编程
- 推荐Java工程师必看,12个Hadoop领域的上手项目
