我现在有一个Date类和一个Transaction类 实现了接口Transactions里的formatString()方法,功能是在初始化的时候接收格式化字符串,我现在想实现一个静态方法makeList(),接受一个字符串数组ss,用ss里面每一个字符串s构造一个实现了Transations接口的对象,所有对象用一个ArrayList盛装并返回,通过指定泛型的方式确定这个ArrayList里装的是Date的对象还是Transaction的对象 请问怎么实现
接口这样定义:
public interface Transactions {
void formatString(String s);
}
Date类的实现:
public class Date implements Transactions{
/** 储存天 **/
private int day;
/** 储存月 **/
private int month;
/** 储存年 **/
private int year;
/**
* 当传入日期的格式化字符串时调用此构造函数,格式"y-m-d"
* @param date String: 日期的格式化字符串,以"-"分隔
* **/
public Date(String date){
this.formatString(date);
}
@Override
public void formatString(String date) {
String[] d = date.split("-");
this.day = Integer.parseInt(d[2]);
this.month = Integer.parseInt(d[1]);
this.year = Integer.parseInt(d[0]);
}
}
Transaction类的实现:
public class Transaction implements Comparable<Transaction>, Transactions{
/** 交易人 **/
private String who;
/** 交易日期 **/
private Date when;
/** 交易金额 **/
private double amount;
/**
* 当传入交易信息的格式化字符串时调用此构造函数,格式"when:amount@who"
* @param transaction String: 交易信息的格式化字符串
* **/
public Transaction(String transaction){
this.formatString(transaction);
}
@Override
public void formatString(String transaction) {
String[] t = transaction.split("[:@]");
this.who = t[2];
this.when = new Date(t[0]);
this.amount = Double.parseDouble(t[1]);
}
}