public class test2 {
public static void main(String[] args) {
trans2();
}
public static void trans1(){
System.out.println("自定义类型的转换");
//判别式
Predicate<Empolyee> isLow=new Predicate<Empolyee>() {
@Override
public boolean evaluate(Empolyee empolyee) {
return empolyee.getSalary()<10000;
}
};
//判别式
Predicate<Empolyee> isHigh=new Predicate<Empolyee>() {
@Override
public boolean evaluate(Empolyee empolyee) {
return empolyee.getSalary()>=10000;
}
};
Predicate[] predicates={isHigh,isHigh};//判别式数组
Transformer<Empolyee, Level> lowTrans=new Transformer<Empolyee, Level>() {//转换
@Override
public Level transform(Empolyee empolyee) {
return new Level(empolyee.getName(), "养身中...");
}
};
Transformer<Empolyee, Level> HighTrans=new Transformer<Empolyee, Level>() {//转换
@Override
public Level transform(Empolyee empolyee) {
return new Level(empolyee.getName(), "出力中...");
}
};
Transformer[] transformers={lowTrans,HighTrans};//转换数组
Transformer transformerUnion=new SwitchTransformer<>(predicates, transformers, null);//关联
//容器
List<Empolyee> list=new ArrayList<Empolyee>();
list.add(new Empolyee("张三", 10002));
list.add(new Empolyee("李四", 9002));
Collection<Level> levelList=CollectionUtils.collect(list, transformerUnion);
//遍历
Iterator<Level> iterator=levelList.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
public static void trans2(){
System.out.println("内置类型的转换");
Transformer<Long, String> transformer=new Transformer<Long, String>() {
@Override
public String transform(Long temp) {
// TODO Auto-generated method stub
return new SimpleDateFormat("yyyy年MM月dd日").format(temp);
}
};
List<Long> list=new ArrayList<Long>();
list.add(10000000L);
list.add(1000234000L);
Collection<String> timeList=CollectionUtils.collect(list, transformer);
for(String str:timeList){
System.out.print(str+"\n");
}
}
}
public class Goods {
private String name;
private double price;
//折扣
private boolean discount;
public Goods() {
// TODO Auto-generated constructor stub
}
public Goods(String name, double price, boolean discount) {
super();
this.name = name;
this.price = price;
this.discount = discount;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public boolean isDiscount() {
return discount;
}
public void setDiscount(boolean discount) {
this.discount = discount;
}
@Override
public String toString() {
return "Goods [商品=" + name + ", 价格=" + price + ", 是否打折=" + (discount?"YES":"NO") + "]";
}
}
public class Level {
private String name;
private String level;
public Level() {
// TODO Auto-generated constructor stub
}
public Level(String name, String level) {
super();
this.name = name;
this.level = level;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
@Override
public String toString() {
return "Level [name=" + name + ", level=" + level + "]";
}
}