唐納德·拉布:通過萬花筒查看 Java 類及其方法

https://donraab.medium.com/looking-at-a-java-class-and-its-methods-through-a-kaleidoscope-998b510e39ac?source=rss-df39b86e9f04——2

Donald Raab:透過萬花筒觀看 Java 類別及其方法

從多個角度探索 Java Stream 方法

由 Shubham Dhage 拍攝,圖片提供 Unsplash

Java 類別的六種觀點

我一直在探索理解大型 Java 類別方法的不同方式。這裡的「大型」指的不是程式碼行數,而是方法數量眾多。功能豐富的 API,有時被稱為人性化 API,在需要尋找方法時,如果不知道名稱,或是尋找類型之間的對稱性和對稱性時就不像人性化。幸運的是,我們有電腦可以幫助我們快速處理大量數據。類別和方法是 Java 開發者在指尖上可以輕鬆訪問的有關庫和應用程式的大量內存數據寶庫。不幸的是,用於切割和透視這些數據的工具有點低階。

我已經為增進我對 Eclipse Collections 功能豐富 API 的理解而創建了一些基本的文件工具。當然,我使用 Eclipse Collections 來幫助我理解 Eclipse Collections。我正在創建的工具讓我能夠了解任何 Java 類別及其方法實例,不僅僅是 Eclipse Collections 類別。你可能認為我一直在試驗的工具是某種類似 Javadoc++ 的東西。我寫這篇博客是希望它能確認或否定一些關於這些類別/方法觀點的有用性。

我還希望這篇博客能夠引起更多關注和興趣,例如 Java 缺少的用戶定義的方法分組功能,這是我從 Smalltalk 中學到的,即所謂的方法類別 (Method Categories)。想像一下能夠使用像 methodCategory=”filtering” 或 methodCategory=”transforming” 這樣的東西選擇性地標記 Java 類別中的每個方法,然後使用 JavaDoc、集成開發環境和開發人員可以通過方法介面查詢這些信息。我岔開了話題。回到我能夠創建的一些新的 Java 功能。方法的觀點和分組。

我已經創建了一個類別及其方法的五個 AsciiDoc 生成的觀點,以幫助我了解類別上的方法是如何組織的,是否存在任何有趣的模式。這些觀點可以幫助我理解類別範圍、命名模式以及可能存在的對稱性/非對稱性。

這篇博客中我們將會看到 Java 類別的六種觀點:

1. Javadoc

2. 按首字母分組的方法

3. 按前綴分組的方法

4. 按後綴分組的方法

5. 按返回類型分組的方法

6. 按功能介面參數類型分組的方法

對於第二至第六個觀點,我使用 Eclipse Collections 根據 Java 的類別和方法類型對方法進行分組和計數。

今天 Java 沒有用戶定義的方法分組機制,這相當於 Smalltalk 中的方法類別。我使用有關方法的可用元數據來構建對方法的分組,並使用生成的 AsciiDoc 生成附加的方法視圖。我將 Java Stream 類的生成的 AsciiDoc 放在 gist 中。下面我鏈接到了 gist 並使用 GitHub 的功能來將 AsciiDoc 渲染成嵌入的表格。

請享受下面這些觀點的 Java Stream 類及其方法!

Java Stream 的六種觀點

我們將使用 Java Stream 作為例子,探索一個 Java 類的六個觀點。

1. Javadoc

Stream (Java SE 21 & JDK 21)

2. 按首字母分組的方法

3. 按前綴分組的方法

4. 按後綴分組的方法

5. 按返回類型分組的方法

6. 按功能介面參數類型分組的方法

最後的想法

有時候建立工具來幫助我們增進對我們使用的 Java 類和方法的理解是有幫助的。Java 讓我們有能力在程式碼中查詢類和方法的大量有用信息。尋找程式碼中的所有東西可能需要大量捲動屏幕並測試我們的記憶。對人類而言,信息砸塊非常有幫助。分組和過濾是促進信息砸塊的好選擇。

這是我首次在 Medium 博客中使用 AsciiDoc。我對 GitHub 自動渲染 AsciiDoc 的表格感到驚喜。現在我知道這是可能的,將來我可能會在 gist 中使用 AsciiDoc 表格,而不是屏幕截圖。

我希望您會發現這篇博客以及 Java Stream 類的五個 AsciiDoc 生成的類/方法觀點有用。請與認為可以從了解 Java Stream 類的方法命名和組織中受益的其他人分享此博客!

Enjoy!

via Planet Eclipse

April 4, 2024 at 10:25AM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *