反射工厂 java_java 日期类、反射、工厂模式 使用教程

日期类:

java.util.Date

Date中的getTime返回的是从1970年1月1日到当前时间的毫秒数

使用SimpleDateFormat类来更改Date的格式。

Date date = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

System.out.println(sdf.format(date));

Format方法的返回值是String类型。

通常Date类中的过期的方法不建议使用,例如要返回当前时间的年份,使用GregorianCalendar类。

GregorianCalendar类中的getTime方法返回的是一个表示当前日期的Date对象。

反射:

概念:通过类的长名字(包名.包名.类名),加载类,并创建对象。

创建对象的方式有两种:

//1.使用new关键字来创建对象

// Person person = new Person();

// person.show();

//2.程序执行的时候并不知道具体的类是哪一个

//String c1 = 从文本框获取的,从数据库读取的,从文件读取的

String c = "com.bluedot.reflect.Person";

try {

Object o = Class.forName(c).newInstance();

Person p = (Person)o;

p.show();

} catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

工厂模式:

设计一个创建对象的接口,同子类来决定创建哪一个类的实例,对象的创建延迟到子类。

工厂模式主要就是应用到对象的创建,它的可扩展性非常好。

c666844e026c51f10c473e7e17789c7d.png

java 日期类、反射、工厂模式 使用教程

package com.bluedot.factory.factoryModel;

public abstract class AbstractFactory {

public abstract T factory(Class c);

}

package com.bluedot.factory.factoryModel;

public class Factory extends AbstractFactory {

@Override

public T factory(Class c) {

AbstractProduct product = null;

try {

product = (AbstractProduct)Class.forName(c.getName()).newInstance();

} catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return (T)product;

}

}

package com.bluedot.factory.factoryModel;

public abstract class AbstractProduct {

//执行一些公共的业务逻辑的方法

public void function(){

}

//抽象方法

public abstract void function1();

}

package com.bluedot.factory.factoryModel;

public class Product1 extends AbstractProduct {

@Override

public void function1() {

// TODO Auto-generated method stub

}

}

package com.bluedot.factory.factoryModel;

public class Product2 extends AbstractProduct {

@Override

public void function1() {

// TODO Auto-generated method stub

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值