亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Classworking 工具箱: 反射泛型

2019-11-18 11:52:59
字體:
來源:轉載
供稿:網友

  java™ 5 擴展了 Java 語言類型系統以支持類、方法和值的參數化類型。參數化的類型通過確保使用正確的類型及消除從源代碼進行類型轉換提供了重要的編譯時好處。除了這些編譯時好處,類型信息對于 classworking 工具操縱 Java 代碼也有幫助。在本文中,JiBX 首席開發員 Dennis Sosnoski 分析了如何用反射深入參數化類型的內部,并充分展示了 Java 5 應用程序數據結構的優勢。

  許多工具都是圍繞使用 Java 反射而設計的,它們的用途包括從用數據值填充 GUI 組件到在運行的應用程序中動態裝載新功能。反射對于在運行時分析數據結構非凡有用,許多在內部對象結構與外部格式(包括 xml、數據庫和其他持久化格式)之間轉換的框架都基于對數據結構的反射分析。

  使用反射分析數據結構的一個問題是標準 Java 集合類(如 java.util.ArrayList)對于反射來說總是“死胡同(dead-end)” —— 到達一個集合類后,無法再訪問數據結構的更多細節,因為沒有關于集合中包含的項目類型的信息。Java 5 改變了這一情況,它增加了對泛型的支持,將所有集合類轉換為支持類型的泛型形式。Java 5 還擴展了反射 API ,支持在運行時對泛型類型信息進行訪問。這些改變使反射可以比以往更深入地挖掘數據結構。

包裝之下代碼

  許多文章討論了 Java 5 的泛型功能的使用。對于本文,假定您已經了解泛型的基本知識。我們首先使用一些示例代碼,然后直接討論如何在運行時訪問泛型信息。

  作為使用泛型的一個例子,我預備使用一個表示一組路徑中的目錄和文件的數據結構。清單 1 給出了這個數據結構根類的代碼。PathDirectory 類取路徑 String 數組作為構造函數參數。這個構造函數將每一個字符串解釋為目錄路徑,并構造一個數據結構以表示這個路徑下面的文件和子目錄。處理每一路徑時,這個構造函數就將這個路徑和這個路徑的數據結構加到一個成對集合(pair collection)中。

清單 1. 目錄信息集

public class PathDirectory implements Iterable{    PRivate final PairCollection m_pathPairs;        public PathDirectory(String[] paths) {        m_pathPairs = new PairCollection();        for (String path : paths) {            File file = new File(path);            if (file.exists() && file.isDirectory()) {                DirInfo info = new DirInfo(new File(path));                m_pathPairs.add(path, info);            }        }    }    public PairCollection.PairIterator iterator() {        return m_pathPairs.iterator();    }        public static void main(String[] args) {        PathDirectory inst = new PathDirectory(args);        PairCollection.PairIterator iter = inst.iterator();        while (iter.hasNext()) {            String path = iter.next();            DirInfo info = iter.matching();            System.out.println("Directory " + path + " has " +                info.getFiles().size() + " files and " +                info.getDirectories().size() + " child directories");        }    }}

  清單 2 給出了 PairCollection 的代碼。這個泛型類處理成對的值,類型參數給出了這些對中項目的類型。它提供了一個 add() 方法向集合中加入一個元組(tuple),一個 clear() 方法清空集合中所有元組,一個 iterator() 方法返回遍歷集合中所有對的迭代器。內部 PairIterator 類實現由后一個方法返回的非凡迭代器,它定義了一個額外的 matching() 方法,這個方法用于得到由標準 next() 方法返回的值的配對(第二個)值。


清單 2. 泛型對集合

public class PairCollection implements Iterable{    // code assumes random access so force implementation class	  private final ArrayList m_tValues;    private final ArrayList m_uValues;        public PairCollection() {		    m_tValues = new ArrayList();        m_uValues = new ArrayList();    }        public void add(T t, U u) {        m_tValues.add(t);        m_uValues.add(u);    }        public void clear() {        m_tValues.clear();        m_uValues.clear();    }    public PairIterator iterator() {        return new PairIterator();    }        public class PairIterator implements Iterator    {        private int m_offset;        public boolean hasNext() {            return m_offset < m_tValues.size();        }        public T next() {            if (m_offset < m_tValues.size()) {                return m_tValues.get(m_offset++);            } else {                throw new NoSUChElementException();            }        }        public U matching() {            if (m_offset > 0) {                return m_uValues.get(m_offset-1);            } else {                throw new NoSuchElementException();            }        }        public void remove() {            throw new UnsupportedOperationException();        }    }}



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产91久久久久| 日韩欧美视频一区二区三区| 欧美成人精品在线| 国产丝袜精品视频| 精品亚洲国产视频| 国产精品久久久久久久7电影| 亚洲影院色在线观看免费| 伊人久久久久久久久久| 91超碰中文字幕久久精品| 日韩欧美在线观看视频| 国产一区二区三区网站| 久久久久久久久中文字幕| 九九热这里只有精品6| 亚洲国产成人精品久久久国产成人一区| 欧美午夜无遮挡| 欧美成年人视频| 精品福利一区二区| 欧美极品少妇xxxxⅹ喷水| 精品美女永久免费视频| 久久综合国产精品台湾中文娱乐网| 国产一区二区三区在线播放免费观看| 国模精品系列视频| 欧美成人精品在线观看| 亚洲人成在线一二| 九色91av视频| 91精品视频观看| 51午夜精品视频| 亚洲字幕一区二区| 97高清免费视频| 国产精品久久久亚洲| 91在线视频导航| 九九热这里只有精品免费看| 欧美日韩中文字幕综合视频| 成年无码av片在线| 91免费观看网站| 欧美日韩中文字幕日韩欧美| 国产午夜精品美女视频明星a级| 国产91九色视频| 久久国产精品久久久| 亚洲第一中文字幕在线观看| 欧美黄色免费网站| 成人国产亚洲精品a区天堂华泰| 亚洲人成啪啪网站| 亚洲欧美日韩久久久久久| 久久久国产成人精品| 日韩电影免费在线观看中文字幕| 狠狠综合久久av一区二区小说| 国产精品一久久香蕉国产线看观看| 亚洲欧美日韩图片| 亚洲国产精品一区二区久| 欧美成在线观看| 国产精品黄页免费高清在线观看| 影音先锋日韩有码| 亚洲一区二区久久久| 国产精品视频一区国模私拍| 国产欧美一区二区三区久久| 奇米影视亚洲狠狠色| 成人av番号网| 亚洲国产精品久久久久秋霞不卡| 日韩视频在线一区| 久久久久久久久久久久久久久久久久av| 亚洲精品美女久久久| 久久国产精品久久久久| **欧美日韩vr在线| 日韩亚洲国产中文字幕| 欧美国产日韩一区二区在线观看| 国产在线播放91| 欧美视频免费在线| 日韩视频在线免费| 久久电影一区二区| 欧美专区中文字幕| 亚洲精品成a人在线观看| 日韩av综合网站| 色偷偷888欧美精品久久久| 久久99精品国产99久久6尤物| 97超级碰在线看视频免费在线看| 久久久久久噜噜噜久久久精品| 欧美亚洲日本黄色| 国产视频亚洲精品| 国内精品中文字幕| 国产精品91一区| 欧美精品videossex性护士| 91久久嫩草影院一区二区| 欧美日韩国产一区中文午夜| 日韩在线观看免费全| 亚洲午夜女主播在线直播| 91精品国产综合久久香蕉| 午夜精品久久17c| 最近2019中文字幕mv免费看| 日韩中文字幕久久| 91a在线视频| 国产成人午夜视频网址| 久久久国产视频91| 欧美在线日韩在线| 国内精品在线一区| 国产一级揄自揄精品视频| 欧美性xxxx极品高清hd直播| 欧美大秀在线观看| 日韩av电影在线播放| 91久久久久久久| 中文字幕在线日韩| 国产一区二区三区三区在线观看| 日韩美女av在线免费观看| 亚洲另类欧美自拍| 成人在线播放av| 欧美一级黑人aaaaaaa做受| 亚洲另类欧美自拍| 国产精品福利在线| 久久夜色精品亚洲噜噜国产mv| 91视频国产高清| 国产精品一区二区三区在线播放| 亚洲精品久久久久久下一站| 美日韩在线视频| 日韩在线播放视频| 欧美成年人视频网站欧美| 欧美精品久久久久a| 日韩一中文字幕| 欧美裸体xxxx极品少妇软件| 国产美女高潮久久白浆| 久久的精品视频| 欧美一级视频在线观看| 亚洲xxx自由成熟| 欧美激情免费视频| 亚洲激情视频在线| 国产欧美日韩综合精品| 欧美日韩国产综合新一区| 69久久夜色精品国产69| 国产视频精品自拍| 欧美大片免费观看在线观看网站推荐| 国产不卡一区二区在线播放| 欧美日本高清一区| 亚洲精品国精品久久99热一| 国产99久久精品一区二区 夜夜躁日日躁| 久久婷婷国产麻豆91天堂| 久国内精品在线| 欧美黑人巨大精品一区二区| 亚洲人成自拍网站| 国产精品69久久久久| 日本久久久久久久久| 91精品国产自产在线| 亚洲黄在线观看| 亚洲美女福利视频网站| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产成人精品一区二区三区| 久久亚洲综合国产精品99麻豆精品福利| 日韩视频在线一区| 国产成人精品一区二区在线| 国产一区红桃视频| 精品久久久久久久久久国产| 久久99青青精品免费观看| 亚洲级视频在线观看免费1级| 国产成人精品日本亚洲| 国产又爽又黄的激情精品视频| 一个人看的www久久| 欧美成人精品影院| 国产精品美女av| 色综合91久久精品中文字幕| 日韩大陆欧美高清视频区| 亚洲精品一区二区三区不| 欧美极品少妇xxxxⅹ裸体艺术| 91香蕉嫩草影院入口| 欧美精品激情视频| 日韩激情av在线免费观看| 少妇高潮 亚洲精品|