`

英文简写

    博客分类:
  • Java
 
阅读更多
SPI(Service Provider Interface) 服务提供接口 Java的SPI机制 SPI的全名为Service Provider Interface.普通开发人员可能不熟悉,因为这个是针对厂商或者插件的。在java.util.ServiceLoader的文档里有比较详细的介绍。究其思想,其实是和"Callback"差不多。“Callback”的思想是在我们调用API的时候,我们可以自己写一段逻辑代码,传入到API里面,API内部在合适的时候会调用它,从而实现某种程度的“定制”。 典型的是Collections.sort(List<t> list,Comparator super T&gt; c)这个方法,它的第二个参数是一个实现Comparator接口的实例。我们可以根据自己的排序规则写一个类,实现此接口,传入此方法,那么这个方法就会根据我们的规则对list进行排序。 把这个思想扩展开来,我们用SPI来重新实现上面的例子。客户把自己的排序规则写成一个类,并且打包成Jar文件,这个Jar文件里面必须有META-INF目录,其下又有services目录,其下有一个文本文件,文件名即为接口的全名:java.util.Comparator。 --META-INF --services --java.util.Comparator 文件内容只有一行: com.company1.ComparatorProvider 这一行是你实现了Comparator接口的类的全名,它的代码如下: package com.company1; import java.util.Comparator; import com.mycompany.myapp.MyItem; public class ComparatorProvider implements Comparator<myitem>{ @Override public int compare(MyItem o1, MyItem o2) { //依据name排序 return o1.getName().compareTo(o2.getName()); } } 编译打包后,把它放到你的主程序的class path里。下面是你的主程序: //从class path中所有Jar的META-INF目录中搜索,找到合适的类并加载。 private static ServiceLoader<comparator> serviceLoader = ServiceLoader.load(Comparator.class); public static void main(String[] args) { List<myitem> myList = new ArrayList<myitem>(); myList.add(new MyItem(2,"c","hhh")); myList.add(new MyItem(3,"k","ooo")); myList.add(new MyItem(4,"d","ppp")); myList.add(new MyItem(5,"b","ggg")); showList(myList); Collections.sort(myList,getCompartor()); showList(myList); } @SuppressWarnings("unchecked") private static Comparator<myitem> getCompartor() { for(Comparator service : serviceLoader) { return (Comparator<myitem>)service; } return null; } 要注意的是serviceLoader开始只是加载类,实例化要到第一次用的时候。类MyItem和方法showList并不重要,所以你不必在意。你可以按照这个规则,写另外一个排序规则的Jar,随时可以更换你的排序规则. </myitem></myitem></myitem></myitem></comparator></myitem></t>
分享到:
评论

相关推荐

    各类软件开发文档的英文缩写

    各类软件开发文档的英文缩写 各类软件开发文档的英文缩写 各类软件开发文档的英文缩写 各类软件开发文档的英文缩写

    文件格式英文缩写大全

    文件格式英文缩写大全 本篇文章将详细介绍各种文件格式的英文缩写,包括音频、图象、压缩、文档、执行、数据库、网页、字体、电影、动画、配置、电子电路图设计等多种文件类型的英文缩写。 音频文件格式:aiff...

    公司常用英语简写

    为了使公司内部的英语使用规范化,本文件《公司常用英语简写》旨在为COM制造工程部的员工提供一个学习材料,包含企业中常用的英语缩写和专业词汇。 文件首先介绍了“企业常用缩写”,这是为了让员工熟悉企业内部...

    软考网络工程师英文简写

    在IT领域,特别是网络工程师考试中,掌握一系列专业术语及其英文缩写是非常重要的。下面将对标题和描述中提到的一些关键概念进行详细解释。 首先,SNA(System Network Architecture)是IBM开发的一种网络体系结构,...

    SIEMENS PLC常用英语缩写表

    在深入探讨SIEMENS PLC(Programmable Logic Controller,可编程逻辑控制器)的常用英语缩写之前,我们有必要先理解PLC的基本概念及其在工业自动化领域的重要地位。PLC是一种专为工业环境设计的计算机系统,用于控制...

    全世界国家及其英文缩写数据库.sql

    全世界国家及其英文缩写数据库.sql 可以直接在sqlserver里运行

    常用电子元件英文缩写

    电子元件英文缩写 常用电子元件英文缩写是电子技术中非常重要的一部分,了解这些缩写可以帮助我们更好地理解电子电路的工作原理和设计。下面是常用电子元件英文缩写的详细解释: 1. 电源:Voltage Source(VS) ...

    编程或数据库表及字段命名可以用到各种英文缩写

    本文将基于给定的文件信息,深入探讨编程或数据库表及其字段命名时可以使用的英文缩写,并对这些缩写的意义进行详细的解释。 ### 1. ABS - Anti-block Brake System ABS是一种汽车制动系统,用于防止车辆在紧急制动...

    计算机英语缩写简写术语 宝典

    ### 计算机英语缩写简写术语宝典 #### 描述 本资料汇集了大量的计算机领域内常用的术语简语,采用“缩写—全称—中文解释”的形式编排,便于用户快速查找与理解。尤其适合在网络不便的情况下,作为查询工具使用。 ...

    英文缩写文档

    这篇文档主要介绍了一些常见的英文缩写,这些缩写在日常交流、互联网聊天、社交媒体和电子邮件中...还有其他许多类似的缩写,它们在日常英语交流中非常常见,了解并掌握这些缩写能帮助我们更好地理解和参与英文对话。

    编程中常遇到的英文缩写

    在IT领域,尤其是在Java开发技术中,掌握一系列的英文缩写是至关重要的,因为它们不仅构成了编程语言的基础,还代表了各种技术、概念和最佳实践。以下是对标题“编程中常遇到的英文缩写”及描述中提及的缩写进行的...

    公司部门英文缩写简称大全.doc

    公司部门英文缩写简称大全 在本资源中,我们可以找到许多公司部门的英文缩写简称。这些缩写简称是公司内部使用的简称,用于快速地表达和交流。下面我们将对这些英文缩写简称进行详细的解释和分类。 总公司 * Head...

    常见职位英文缩写-司机英语缩写.docx

    在IT行业中,各种职位的英文缩写是必不可少的专业术语,特别是在全球化的背景下,了解这些缩写对于跨文化交流和国际合作至关重要。以下是一些常见的IT职位英文缩写及其详细解释: 1. CEO (Chief Executive Officer)...

    常用汽车英文缩写含义全攻略

    在汽车领域,了解各种英文缩写对于理解和维护车辆至关重要。以下是一些常见汽车英文缩写的详细解释: 1. **Tiptronic**: 这是一种自动变速器,允许驾驶员手动选择换挡点,提供部分手动驾驶的乐趣。 2. **...

    JAVA String to Date 含Mon等缩写格式

    日期转换例子,支持含各种语言的三个字母缩写...适用于数据导入数据库String类型中含英文缩写转换,网上普遍使用的String to Date 都不适用含Mon Jul 等缩写,对比API,可以实现任意格式的String 类型转换成Date类型

    电子电气常见英文缩写.pdf

    电子电气常见英文缩写是编程时常用的英文单词缩写,新手常看技术文档有很多缩写不知道什么意思,这篇文件共6页,涵盖了电子电气领域中的常见英文缩写。 1. 交流电(AAC):Alternating Current,交流电是一种交流电压...

    常用计算机术语及英文缩写

    常用计算机术语及英文缩写 计算机术语是计算机领域中使用的专业术语,包括硬件、软件、网络、操作系统、数据库、编程语言等方面的技术词汇。这些术语对计算机专业人员和计算机爱好者来说非常重要,它们是计算机领域...

    光纤通信中常用英文缩写.doc

    "光纤通信中常用英文缩写" 在光纤通信领域中,英文缩写是非常常见的,了解这些缩写对了解光纤通信技术非常重要。下面是常见的光纤通信英文缩写的解释: 1. AC - Alternating Current(交流电流):交流电流是指...

Global site tag (gtag.js) - Google Analytics