在Java程序中,可以通過給System.in和System.out重新賦值來重定向標(biāo)準(zhǔn)輸入和輸出。 在單元測試的時候,為了對涉及到標(biāo)準(zhǔn)輸入和輸...
大家都知道,Java在創(chuàng)建異常對象時會生成調(diào)用棧信息,這樣當(dāng)異常拋出時,開發(fā)者就能從報錯信息中看到異常拋出的路徑,非常有利于定位問題。 但是,調(diào)...
前言 Java8新增的Stream API是一個強(qiáng)大的特性,它可以簡化集合中的常用操作,包括過濾、映射、分組等。下面就來實(shí)現(xiàn)一個簡易版的Stre...
Java 1.8之后,新增了一個叫做SerializedLambda的類,它用來保存Lambda表達(dá)式序列化之后的數(shù)據(jù),通過Serialized...
假設(shè)有以下接口: 這是一個泛型接口,在實(shí)現(xiàn)Factory的時候需要指定泛型參數(shù): 假如我們要獲取一個Factory實(shí)例的泛型參數(shù),要怎么做呢?可...
這篇文章介紹如何用Parser Combinator實(shí)現(xiàn)一個簡單的正則表達(dá)式引擎。 Cursor Cursor封裝了字符串的狀態(tài),表示一個光標(biāo)位...
示例工程 引入Maven依賴: 在項(xiàng)目中新建一個byx.test包,然后添加以下三個類: 再添加一個Main類作為啟動類: 運(yùn)行main方法,控...
工程搭建 Maven依賴: 在項(xiàng)目下新建一個byx.test包,然后在里面添加A、B、Config三個類: A和B是兩個普通的類(沒有標(biāo)注Com...
首先定義一個Strategy接口來表示一個策略: 其中flag方法返回當(dāng)前策略的唯一標(biāo)識,process則是該策略的具體執(zhí)行邏輯。 下面是Str...