国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Java中的Vector

2019-11-18 13:22:15
字體:
供稿:網(wǎng)友

  Vector的用法很簡單,這已在前面的例子中得到了證實。盡管我們大多數(shù)時候只需用addElement()插入對象,用elementAt()一次提取一個對象,并用elements()獲得對序列的一個“枚舉”。但仍有其他一系列方法是非常有用的。同我們對于java庫慣常的做法一樣,在這里并不使用或講述所有這些方法。但請務(wù)必閱讀相應(yīng)的電子文檔,對它們的工作有一個大概的熟悉。
  
  1. 崩潰Java
  
  Java標準集合里包含了toString()方法,所以它們能生成自己的String表達方式,包括它們?nèi)菁{的對象。例如在Vector中,toString()會在Vector的各個元素中步進和遍歷,并為每個元素調(diào)用toString()。假定我們現(xiàn)在想打印出自己類的地址。看起來似乎簡單地引用this即可(非凡是C++程序員有這樣做的傾向):
  
  //: CrashJava.java
  // One way to crash Java
  import java.util.*;
  
  public class CrashJava {
   public String toString() {
    return "CrashJava address: " + this + "/n";
   }
   public static void main(String[] args) {
    Vector v = new Vector();
    for(int i = 0; i < 10; i++)
     v.addElement(new CrashJava());
    System.out.PRintln(v);
   }
  } ///:~
  
  若只是簡單地創(chuàng)建一個CrashJava對象,并將其打印出來,就會得到無窮無盡的一系列違例錯誤。然而,假如將CrashJava對象置入一個Vector,并象這里演示的那樣打印Vector,就不會出現(xiàn)什么錯誤提示,甚至連一個違例都不會出現(xiàn)。此時Java只是簡單地崩潰(但至少它沒有崩潰我的操作系統(tǒng))。這已在Java 1.1中測試通過。
  此時發(fā)生的是字串的自動類型轉(zhuǎn)換。當我們使用下述語句時:
  "CrashJava address: " + this
  編譯器就在一個字串后面發(fā)現(xiàn)了一個“+”以及好象并非字串的其他東西,所以它會試圖將this轉(zhuǎn)換成一個字串。轉(zhuǎn)換時調(diào)用的是toString(),后者會產(chǎn)生一個遞歸調(diào)用。若在一個Vector內(nèi)出現(xiàn)這種事情,看起來堆棧就會溢出,同時違例控制機制根本沒有機會作出響應(yīng)。
  若確實想在這種情況下打印出對象的地址,解決方案就是調(diào)用Object的toString方法。此時就不必加入this,只需使用super.toString()。當然,采取這種做法也有一個前提:我們必須從Object直接繼續(xù),或者沒有一個父類覆蓋了toString方法。

上一篇:Java中的BitSet

下一篇:Java中的排序

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 盖州市| 常德市| 凉城县| 鲜城| 互助| 孟州市| 丰镇市| 日照市| 阳西县| 潞西市| 建始县| 略阳县| 呼和浩特市| 开平市| 峡江县| 宁夏| 万盛区| 浪卡子县| 汝州市| 桃园县| 余江县| 梁河县| 车致| 邢台市| 当阳市| 西平县| 广宁县| 广汉市| 江达县| 正阳县| 肃宁县| 即墨市| 廊坊市| 望谟县| 泸溪县| 紫阳县| 荣昌县| 左贡县| 雅江县| 皋兰县| 鄄城县|