JAVA查询泛型回调,java 学习4 callback 回调 和泛型

学oc语法 还用了一周。没向导 学java 语法。一天时间。就一大半了。

这个流程还是不错的。后面还有io .以及反射。多线程。后2个,可以不在熟悉基本语法流程中。

java 还是很规矩和强力的语言。回调 非常 标准和简洁 和c# 一样 。

需求:假如我们有个方法可以显示一些字符信息。如果我们需要修改信息。一般都是修改类本身的方法。 如果需要不修改类,而达到此自定义信息的目的。那么就必须回调 。

构架:本类提供输入信息。要求外部类提供输出。 简洁手段:本类包含一个类b。调用类b的方法。结束。

由此引申出很多东西。 如c# 的。用叔祖包含类b。导致可以多个观察者 。很多东西 。c#的事件 。oc的协议。c++的网络模式。无一不是回调的使用和变化。

徽调接口

packagecom.linson;public interfaceIShowBase

{publicString showbase(goods gsinfo);

}

使用徽调接口者

publicIShowBase showBaseHandler;publicString MyBaseInfo_Custom()

{if(showBaseHandler==null)

{return "custome hander is null";

}else{return "custome :"+ showBaseHandler.showbase(this);

}

}

继承徽调接口和实现接口方法者

public static voidStudy_class_callback()

{

Book book_cshart=new Book(0, "c#2", 3.1f, "linson", newDate());

System.out.println(book_cshart.MyBaseInfo_Custom());

HelloWord theclass=newHelloWord();

book_cshart.showBaseHandler=(IShowBase) theclass;

System.out.println(book_cshart.MyBaseInfo_Custom());

}publicString showbase(goods gsinfo)

{

DecimalFormat dt=newDecimalFormat();

dt.applyLocalizedPattern("0.00000000");

String priceformat=dt.format(gsinfo.price);return "ID:"+gsinfo.id+". price:"+priceformat+ "(i can define it ,but dont modify goods.java)";

}

泛型类

public class Generic{privateT key;publicT getKey(){}

}

泛型方法

public T genericMethod(Class tClass){}

2个泛型间的配合

注意红色部分。

LSListen和IOrder 是2个独立泛型类。

LSListen的addOrder方法规定了iorder作为参数时,泛型必须一致。

public interface IOrder{voidonHappen(A data);

}

public class LSListen{public List LISTENERS = new ArrayList<>();public void addOrder(IOrderorder)

{

LISTENERS.add(order);

}public void unOrder(IOrderorder)

{

LISTENERS.remove(order);

}public voidNoticeOrder(T parameter)

{for(IOrder item : LISTENERS)

{if (item != null)

{try{

item.onHappen(parameter);

}catch(Exception e)

{

LSLog.Log_Exception(e);

}

}

}

}

}

接口是来表示意图,是抽象的重要工具。这个是对对象而言。

如果需要抽象的是类,而不是对象。那么要注意object 的语法:Class extends Handler>  来抽象所有Handler的派生类,是类不是对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值