日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Groovy】Groovy 扩展方法 ( 扩展静态方法示例 | 扩展实例方法示例 | 扩展实例方法与扩展静态方法代码相同 )

發(fā)布時間:2025/6/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Groovy】Groovy 扩展方法 ( 扩展静态方法示例 | 扩展实例方法示例 | 扩展实例方法与扩展静态方法代码相同 ) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 一、擴展靜態(tài)方法示例
  • 二、擴展實例方法示例
  • 三、擴展實例方法與擴展靜態(tài)方法代碼相同





一、擴展靜態(tài)方法示例



在上一篇博客 【Groovy】Groovy 擴展方法 ( Groovy 擴展方法引入 | 分析 Groovy 中 Thread 類的 start 擴展方法 ) 中 , 分析 Thread 的擴展方法 start 方法 , 該方法調(diào)用如下 ,

Thread.start { }

這個為 Thread 擴展的方法是一個靜態(tài)方法 ;

/*** 以給定的閉包作為可運行實例啟動線程。** @param self Groovy類別使用的占位符變量;默認靜態(tài)方法忽略* @param closure 可運行的閉包* @return 返回已經(jīng)啟動的線程 * @since 1.0*/public static Thread start(Thread self, Closure closure) {return createThread(null, false, closure);}



二、擴展實例方法示例



聲明 InputStream 實例對象 , 該實例對象可以調(diào)用 getText 擴展方法 ;

InputStream inputStream inputStream.getText()


使用 InputStream 類無法調(diào)用 getText() 方法 ;


這說明 為 InputStream 擴展的 getText 方法 , 是一個 實例方法 , 只有實例對象能調(diào)用該擴展方法 , 類無法調(diào)用該擴展方法 ;


查看為 InputStream 擴展的 getText() 方法的源碼 : 該擴展方法是 static 修飾的 ;

/*** 讀取此InputStream的內(nèi)容并將其作為字符串返回。* 流在該方法返回之前關閉。** @param is 輸入流* @return 返回 URL 獲取的字符串文本* @throws IOException 如果 IO 異常 發(fā)生.* @since 1.0*/public static String getText(InputStream is) throws IOException {BufferedReader reader = new BufferedReader(new InputStreamReader(is));return getText(reader);}



三、擴展實例方法與擴展靜態(tài)方法代碼相同



這說明 無論為類 擴展 實例方法 , 還是 擴展 靜態(tài)方法 , 定義的擴展方法都是 static 靜態(tài)的 ;

真正用于區(qū)分 擴展的是 實例方法 還是 靜態(tài)方法 , 是在 manifest.META-INF.services 目錄 中的 org.codehaus.groovy.ExtensionModule 文件 中的不同配置決定的 ;

總結(jié)

以上是生活随笔為你收集整理的【Groovy】Groovy 扩展方法 ( 扩展静态方法示例 | 扩展实例方法示例 | 扩展实例方法与扩展静态方法代码相同 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。