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

免备案手机网站wordpress如何建立网站

免备案手机网站,wordpress如何建立网站,网站建设SEO优化,企业网站开发费用展开全部大家都知道Vector以及其他的容器可以不加任何修饰地e68a8462616964757a686964616f31333236373765存储任何类型的对象,这给我们带来了极大的方便#xff0c;也使得容器很容易被复用#xff0c;但是大多数时候我们可能需要只能存储某一类型对象的Vector#xff0c;这是…展开全部大家都知道Vector以及其他的容器可以不加任何修饰地e68a8462616964757a686964616f31333236373765存储任何类型的对象,这给我们带来了极大的方便也使得容器很容易被复用但是大多数时候我们可能需要只能存储某一类型对象的Vector这是因为我们不希望由于自己失误或其他原因在Vector中添加(add())了不同类型的对象而导致在程序中其它地方的get()发生运行时异常(这是由于不正确的类型转化引发的)请看下面的例子//TestVector.javaimport java.util.Vector;class Dog{ private int number; public Dog(int number){ this.number number; } public String toString(){ return This is number #: number; }}public class TestVector { public static void main(String[] args) { Vector v new Vector(); Dog dog; v.add(new Dog(1)); v.add(new Dog(2)); v.add(new Dog(3)); v.add(new Integer(4)); //假设由于我的疏忽错误地将Integer类型的对象添加进了v中 for(int j 0; j v.size(); j){ dog (Dog)v.get(j); //想一想当取到类型为Integer的对象时将引起ClassCastException System.out.println(dog); } }}注意带有注释的那两行这种错误在编译时并不会提醒我们只能在运行时发生ClassCastException这是(Dog)v.get(j)引起的更糟糕的是当发生这种错误之后我们很难找到错误的根源在哪里换句话说就是我们到底在哪里错误地添加了那个非Dog类型的Integer对象大家运行程序就会明白。尤其是当我们在离那个错误的v.add(new Integer(4))很远的地方(可能是很多层)调用(Dog)v.get(i)时更是如此。此时大家可能会想如果限制v仅能添加Dog类型的对象问题不就解决了吗这的确是个办法解决如下//: DogVector.javaimport java.util.Vector;public class DogVector { private Vector v new Vector(); public void add(Dog dog){ v.add(dog); } public Dog get(int index){ return (Dog)v.get(index); } public int size(){ return v.size(); }}//TestDogVector.javapublic class TestDogVector { public static void main(String[] args) { Dog dog; DogVector dv new DogVector(); //明确地创建了只能存放Dog对象的DogVector dv.add(new Dog(1)); dv.add(new Dog(2)); dv.add(new Dog(3)); // dv.add(new Integer(4)); //此时如果再发生这种疏忽的话编译将不能通过 for(int i 0; i dv.size(); i){ dog dv.get(i); //此处也不需要向下转型为Dog System.out.println(dog); } }}问题得到了解决但此时大家可能郁闷了我们在这种情况下是不是要写很多这样乏味的代码每一类需要存储的对象都得写一个特定的集合类吗确实在JDK1.5以前这的确是个问题好在JDK1.5版本中sun引进了泛型--java参数化类型到此想必大家已经意识到参数类型化所要解决的问题之一,就像下面这样Vector v new Vector(); E在此处代表我们指定v中只能存放E这种类型的对象这样将确保我们不会错误地将别的类型的对象添加进去如果你非要那样做错编译器也不会允许并且我们在使用get()方法的时候也不需要向下转型为对象本身的类型E因为编译器已经为我们完成了它很清楚地知道v中存储的对象类型就是E而且get()返回的对象类型就是E而不光是Object。试试下面的例子//: TestVector2.javaimport java.util.Vector;public class TestVector2 { public static void main(String[] args) { Vector v new Vector(); Dog dog; v.add(new Dog(1)); v.add(new Dog(2)); v.add(new Dog(3)); //v.add(new Integer(4)); //此时如果再发生这种疏忽的话编译将不能通过 for (int j 0; j v.size(); j) { dog v.get(j); //此处也不需要向下转型为Dog,方法返回类型就是Dog System.out.println(dog); } }}通过使用参数类型化,还会发生更多的微妙的变化这里的v.get(j)返回为Dog型只是其中一例在上例中v的其他一些方法的参数或返回值也将发生变化有些接收Object参数的方法此时只能接受Dog或其派生类对象如v.Set(int Index, Dog element),注意如果使用Dog及其派生以外的Object类型的对象做参数时将发生编译期错误这也正是我们在这种情况下想要的效果是不是很爽呢好了罗嗦了这么多其目的就是想让大家从问题的根源来理解概念如果大家还想对其深入的话可以找一些专门的资料来看看想必学过C的朋友应该对此很容易理解,因为java的参数化类型正是借鉴了C中模板的概念。(如果你发现此贴中有不准确的地方望及时指正以免误人谢谢)本回答由提问者推荐已赞过已踩过你对这个回答的评价是评论收起
http://www.zqtcl.cn/news/551289/

相关文章:

  • 网站空间备案要多久花木公司网站源码
  • 高端求职网站排名ftontpage如何做网站
  • 音乐网站开发技术河南省住房和城乡建设门户网站
  • 吉安微信网站弋阳县建设工程网站
  • 网站建设自学建站视频教程哈尔滨全国网站建设
  • 网站建设基础培训网站架构拓扑图
  • 网站开发价格预算成都必去的地方排行榜
  • 鹤岗做网站企业建立网站主要包括那些流程
  • 如何进网站出口外贸是做什么的
  • 网站制作北京网站建设公司哪家好一个人 建设网站
  • 百度网站是什么阿里云免费网站建设
  • 网站建设平台源码攻击网站步骤
  • 注册了网站之后怎么设计深圳开发app
  • 国外网站搭建平台移动互联网公司
  • 做网络私活的网站网站开发的人
  • 数据分析网站开发四川手机网站设计方案
  • 什么是网络营销的方法莱州网站建设关键字排名优化网络托管微信代运营
  • 雅虎网站收录提交入口怎么看网站谁做的
  • 青浦专业做网站免费网站软件大全
  • joomla 网站图标六安市城市建设档案馆网站
  • 郑州 公司网站制作win10 wordpress安装
  • html5网站有哪些网站建设部分费用会计科目
  • 网站域名备案 更改吗深圳新站优化
  • 房产网站门户系统免费网站免费无遮挡
  • 用国外网站 图片做自媒体seo诊断a5
  • 广州市南沙建设局网站优改网logo设计
  • 网站建设亿玛酷知名公司网站首页如何做
  • 教育网站 php网络服务公司
  • net域名做网站怎么样建站公司 转型经验
  • 赣州网站建设哪家公司好上海市建设安全协会网站