当前位置: 首页 > news >正文

家政公司网站模板wordpress防cc代码

家政公司网站模板,wordpress防cc代码,网站建设有哪些需要注意的关键细节,wordpress 插件如何使用对于我们java中的泛型#xff0c;可能很多人知道怎么使用并且使用的还不错#xff0c;但是我认为想要恰到好处的使用泛型#xff0c;还是需要深入的了解一下它的各种概念和内部原理。本文将尽可能的囊括java泛型中的重要的概念。主要内容如下#xff1a;泛型的定义及为什么…对于我们java中的泛型可能很多人知道怎么使用并且使用的还不错但是我认为想要恰到好处的使用泛型还是需要深入的了解一下它的各种概念和内部原理。本文将尽可能的囊括java泛型中的重要的概念。主要内容如下泛型的定义及为什么要使用泛型定义一个简单的泛型类定义一个简单的泛型方法类型参数的限定泛型内部实现的基本原理泛型通配符(难点)泛型的其他实现细节一、何谓泛型泛型程序设计意味着编写的代码可以被不同中类型的对象重用。例如MyList,MyList是一种类型MyList也是一种类型但是使用的代码块都是MyList这也就是java中引入泛型的一种原因可以增强代码的复用性当然这种限定死类型的方式也会使得代码的安全性和可读性更高。二、一个简单的泛型类先看一个完整的泛型类/*一个简单的泛型类的声明如下*/public class Pair {private T a;private T b;public Pair(T a, T b){this.a a;this.b b;}}由此可以看出来泛型类型和普通类型的区别主要在于类名之后多了个并且实例域类型可以不是具体的类型而是不确定的T类型。其中我们管T叫做类型变量类型变量一般使用大写字母表示并且很短(在java中使用E表示集合的元素类型K和V分别表示关键字和值的类型)。使用具体的类型来替换类型变量的过程我们叫做实例化泛型类型。例如Pair,等。这其中需要注意的是java中的9中基本类型是不能作为类型变量的也就是Pair,是会不允许的。当然声明一个泛型类时不局限于一个类型变量可以由多个类型变量例如/*声明两个类型变量也是可以的*/public class Pair {private T a;private U b;public Pair(T a, U b){this.a a;this.b b;}}//Pair p new Pair(abc,12);//创建泛型类实例变量的时候可以省略类型变量编译器可以推测出来三、一个简单的泛型方法怎么定义泛型类我们已经介绍过了接下来我们一起看看泛型方法是如何定义和调用的。/*泛型类中定义了一个泛型方法*/public class Pair {//声明一个泛型方法public T getA(T c){return c;}}/*main函数中调用泛型方法*/public class Test2 {public static void main(String[] args){Pair p new Pair(1,2);//调用泛型方法System.out.println(p.show(10));}}我们可以看到声明一个泛型方法public T getA(T c)放在返回值前面修饰符后面T表示返回类型。泛型方法的调用p.show(10),在方法名前面放置类型变量当然也可以选择省略当编译器没有足够的信息推测出来时就会报错那时你再添加也不迟(但是如果你能减轻计算机的工作的话想必是可以提高效率的)小结一下泛型类和泛型方法。泛型类中可以声明泛型方法也可以声明普通方法泛型方法可以出现在泛型类中也可以出现在普通类中也就是它们之间并没有什么约束关系。四、类型变量的限定前面我们已经知道了什么是类型变量我们看一段代码public class Pair {public static int myCompare(T a,T b){return a.compareTo(b);//此处编译不通过}}我们知道如果想要使用compareTo方法就要实现Comparable接口或者继承实现了此接口的类。此处想要使得程序正确有两种办法。第一种使类继承Comparable接口并且实现compareTo方法。第二种就是使用类型变量限定。如下/*限定变量类型*/public class Pair {public static int myCompare(T a,T b){return a.compareTo(b);}}细心的同学可能已经发现相比于原来的方法就是使类型变量继承与Comparable接口。原来的变成了表示原来的T可以是任意类型的而现在的T被限制必须实现了Comparable 接口就是说凡是使用此泛型的类都是直接或者间接继承了Comparable 接口并实现其中方法的。所以一旦我们将T限定了就不用考虑实现Comparable 接口的事情了程序的封装性更强了。对类型变量的限定可以由多个限定它们之间使用分隔而使用逗号分隔类型变量。看个例子 //一个类型变量的一个类型限定 //一个类型变量的两个类型限定//两个类型变量的类型限定五、泛型实现的基本原理讨论了这么多的泛型方法泛型类以及各种使用技巧接下来我们一起看看虚拟机实际执行时是怎么对待我们的泛型的。我们都知道java中有编译器和虚拟机但实际上我们的泛型在这两者看来是不一样的也就是说虚拟机是不认识泛型的而只有我们强大的编译器是认识泛型的。那他们是怎么实现统一的呢接下来我们详细来看。在java中无论何时定义了一个泛型它都会自动生成一个相应的原始类型。我们叫这个过程为类型擦除。例如下面的代码/*这是一段泛型类的代码*/public class Pair {private T a;private T b;public T getA(){return this.a;}public T getB(){return this.b;}}经过类型擦除之后生成原始类型public class Pair{private Object a;private Object b;public Object getA(){return this.a;}public Object getB(){return this.b;}}经过对比我们可以得出结论去除了泛型的标志性符号并且所有的T类型都被替换成Object类型了。难道我们的类型擦除就是将所有的未知类型转换为Object类型吗当然不是类型擦除是有规则的而不是一味的将未知类型T转换成Object类型的。对于有限定的类型变量就将用类型变量的第一个限定类型替换。如Pair就会选择用Comparable替换所有的T并去除修饰在类后面的泛型符号生成原始类型。对于没有限定类型的类型变量就默认使用Object替换类型变量。例如Pair就会使用Object替换所有的T类型变量。最后小结一下类型擦除针对是否有类型限定类型根据不同的状况进行替换生成相应的原始类型供jvm调用。未完待续。。。。
http://www.pierceye.com/news/182453/

相关文章:

  • 网站建设推荐书籍装修公司装修房子
  • 上海专业微信网站开发公司怎么做seo
  • 上海市质量工程建设管理协会网站网站后台源码
  • 淄博机关建设网站免费发布企业信息平台
  • 怎么注册网站免费的怎么给网站备案
  • 新公司 做网站 流程西安房价
  • 展厅设计软件珠海百度快速优化
  • 网站 关键词 地区seo对网络推广的作用是什么?
  • 网站建设 知乎wordpress woocommerce主题
  • 申请建设工作网站的函如何做网站词库
  • 化工集团网站建设 中企动力网站建设用的服务器
  • wow做宏的网站重庆网址大全
  • 网站建设试题 jsp炎陵做网站
  • 购物网站前台功能模块怀孕单子图片在线制作
  • 做百度推广和企业网站那个有效果吗互动的网站
  • 织梦网站后台怎么登陆磁力兔子搜索引擎
  • wordpress建站必须选择主题磁力引擎
  • 主流网站 技术做爰的网站
  • 网站开发免责合同东莞营销型网站建设公司
  • 网站建设维护培训班网站排名系统
  • 深圳语种网站建设石家庄企业网站建设
  • 长春企业公司网站建设湖北省住房和城乡建设厅门户网站
  • 网站主机名是什么在小说网站做责编
  • 网站建设基本流程信息技术建筑网站设置工资单人换了怎么换
  • 建设银行查余额网站诚信经营网站的建设
  • 平台型网站建设公司最近发生的重大军事新闻
  • 分享惠网站怎么做旅游网站网页设计模板代码
  • 2018年做网站赚钱那些网站做的非常好看的
  • 兰州网站建设哪家专业wordpress耗时
  • 手机网站解析域名网站那个做的比较好