public class Host {
private static class StrLenCmp implements Comparator<String>,Serializable {
private static final long serialVersionUID = -2947076330971319599L;
@Override
public int compare(String o1, String o2) {
return o1.length() - o2.length();
}
}
public static final Comparator<String> STRING_LENGTH_COMPARATOR = new StrLenCmp();
}
简而言之,函数指针的主要用途就是实现策略(Strategy)模式。为了在Java中实现这种模式,要声明一个接口来表示该策略,并且为每个具体策略声明一个实现了该接口的类。当一个具体策略只被使用一次时,通常使用匿名类来声明和实例化这个具体策略类。当一个具体策略是设计用来重复使用的时候,它的类通常就要被实现为私有的静态成员类,并通过公有静态final域被导出,其类型为该策略接口
分享到:
相关推荐
《Effective Java》第三版中文版目录 第一章 介绍 1 第二章 创建和销毁对象 4 1 考虑用静态工厂方法替换构造器 4 2 当遇到多个构造器参
effective-java.pdf
Effective Java读书笔记.pdf
Effective java 3 学习记录
effective java 读书笔记,第二版自己摘要并翻译,以备速查。
Effective Java读书笔记,记载了大部分我觉的有用的东西,前半部分有代码说明,但后半部分的代码,太过琐碎,就没有整理
【Effective Java】阅读笔记markdown 文件
effective-java 配套代码
15. 使类和成员的可访问性最小化 16. 在公有类中使用访问方法而非公有域 17.使可变性最小化:不可变类
《Effective Java》读书分享.pptx
Effective Java Effective Java Effective Java
本书详细介绍企业级计算技术中的常见问题,并描述使用企业级Java平台技术处理这些问题的方法。本书以若干条建议、揸南的形式,言简意赅地介绍了J2EE开发中的微妙之处。无论你是否是Java开发人员,本书都将为你开发...
永远不要根据枚举的序数导出与它关联的值,而是要将它保存在一个实例域中:public enum Ensemble {Enum规范中谈及ordinal方法时写道:
Effective Enterprise Java
第67条:谨慎地进行优化有三条优化有关的格言是每个人都应该知道的:很多计算上的过失都被归咎于效率(没有达到必要的效率),而不是任何其他的原因 ,甚至包括盲目的做
下面是用一个传统的for循环遍历集合的例子:用传统的for循环遍历数组的做法如下:这些做法逗比while循环更好,但是它们并不完美。如果真的那么不幸,并且外部集
《Effective_C#中文版:改善C#程序的50种方法》读书笔记
effectiveJava的笔记