我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java扩展方法怎么创建

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java扩展方法怎么创建

这篇文章主要讲解了“Java扩展方法怎么创建”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java扩展方法怎么创建”吧!

    引言

    扩展方法能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法没有明显的差异。

    支持扩展方法的语言

    其实比较多的编程语言都支持了扩展方法,如C#、Visual Basic、Kotlin等,但我们的Java语言就是迟迟不支持,在JDK9中开始支持以jmod方式扩展java功能,JDK16承诺给出动态库调用方案,但是作为JDK8的钉子户的我们如果也想使用扩展方法,就得另寻他路了。

    C#

    /// 扩展方法public static class ExpandMethod {    /// 两个数相加    public static int Sum(this int num,int num2) {        return num + num2;    }}public class Program {    static void Main(string[] args) {        /// 调用位置        Console.WriteLine(3.Sum(2));    }}

    Visual Basic

    Imports System.Runtime.CompilerServicesModule Module3    Sub Main()        Dim ex As New ExampleClass        ' 调用位置        ex.ExampleMethod("Extension method")    End Sub     Class ExampleClass        ' Define an instance method named ExampleMethod.         Public Sub ExampleMethod()            Console.WriteLine("Instance method")        End Sub     End Class    <Extension()>     Sub ExampleMethod(ByVal ec As ExampleClass,             ByVal stringParameter As String)        Console.WriteLine(stringParameter)    End Sub End Module

    Kotlin

    // 扩展函数(本类中扩展方法)class Test1 {    var name: String = "boyi.chen"}fun Test1.temp() {    println("增加扩展函数,打印扩展类的属性name=${this.name}")}fun main(args: Array<String>) {    // 调用位置    Test1().temp()}

    主角登场

    Java8本身不支持扩展方法,但我们可以通过插件的方式实现扩展方法,用起来跟直接使用扩展方法一样一样的,Lombok就是其中的一款插件。

    Lombok @ExtensionMethod

    通过Lombok @ExtensionMethod注解,程序编译期间帮我们生成直接调用的静态方法,当然IDEA插件能提供更好的支持,下边看下具体的例子。

    @ExtensionMethod(StringUtil.class)public class LombokTest {    public static void main(String[] args) {        System.out.println("".isBlank());    }        public static class StringUtil {                public static boolean isBlank(String targetStr) {            return targetStr == null || "".equals(targetStr);        }    }}

    编译后的内容可以看到方法已经从 "".isBlank() 转换为 LombokTest.StringUtil.isBlank(""),Lombok也正是通过这种方式提供给我们扩展方法的语法糖,真的好甜。

    Java扩展方法怎么创建

    感谢各位的阅读,以上就是“Java扩展方法怎么创建”的内容了,经过本文的学习后,相信大家对Java扩展方法怎么创建这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Java扩展方法怎么创建

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    Java扩展方法怎么创建

    这篇文章主要讲解了“Java扩展方法怎么创建”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java扩展方法怎么创建”吧!引言扩展方法能够向现有类型“添加”方法,而无需创建新的派生类型、重新编
    2023-07-05

    java虚拟扩展方法怎么实现

    这篇文章主要介绍“java虚拟扩展方法怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java虚拟扩展方法怎么实现”文章能帮助大家解决问题。1、Java8允许在界面中实现特定的方法,只需在方法
    2023-06-30

    Linux中怎么创建或扩展交换分区

    Linux中怎么创建或扩展交换分区,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。如何检测当前交换分区大小通过 free & swapon 命令来检测当前的交换分区空间的大小
    2023-06-16

    怎么在java中实现虚拟扩展方法

    这期内容当中小编将会给大家带来有关怎么在java中实现虚拟扩展方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2.
    2023-06-14

    windows8.1选择物理磁盘创建扩展分区的方法

    单击“开始”菜单,从附件中找到“命令提示符”,右击选择“以管理员身份运行”打开命令提示符窗口,输入“diskpart”命令,进入DISKPART
    2022-06-04

    oracle创建表空间自动扩展怎么实现

    要实现Oracle数据库表空间的自动扩展,可以通过以下步骤来实现:创建一个包含自动扩展属性的表空间:在创建表空间时,使用关键字“AUTOEXTEND”并指定“ON”来启用自动扩展。示例如下:CREATE TABLESPACE example
    oracle创建表空间自动扩展怎么实现
    2024-04-09

    java swing控件扩展的方法是什么

    Java Swing控件的扩展方法有以下几种:1. 继承基本控件:可以通过继承JButton、JLabel、JTextField等基本控件来创建自定义控件,并在其中添加额外的功能。2. 组合控件:可以通过将多个基本控件组合在一起,形成一个新
    2023-08-26

    C# 3.0中扩展方法怎么用

    这篇文章主要介绍了C# 3.0中扩展方法怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Extension Methods 使用扩展方法,使用的时候需要注意的地方1.C#
    2023-06-17

    jquery怎么扩展自定义方法

    要扩展自定义方法,可以使用jQuery的`$.fn`命名空间。下面是一个简单的示例:```javascript// 扩展自定义方法$.fn.customMethod = function() {// 在这里编写自定义方法的代码// 使用th
    2023-08-12

    Deployment副本无状态服务创建及水平扩展的方法

    本文小编为大家详细介绍“Deployment副本无状态服务创建及水平扩展的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“Deployment副本无状态服务创建及水平扩展的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
    2023-06-29

    Linq扩展方法是什么

    这篇文章主要讲解了“Linq扩展方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linq扩展方法是什么”吧!LINQ使查询成为了.NET中头等的编程概念,被查询的数据可以是XML(L
    2023-06-17

    Java缺失的特性扩展方法是什么

    今天小编给大家分享一下Java缺失的特性扩展方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么是扩展方法扩展方法,
    2023-07-05

    怎么在SAP S/4HANA Fiori UI上创建新的扩展字段

    这期内容当中小编将会给大家带来有关怎么在SAP S/4HANA Fiori UI上创建新的扩展字段,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在此互动程序中创建新的扩展字段:选择业务上下文“Produc
    2023-06-04

    Java2 HTML扩展方法是什么

    本文小编为大家详细介绍“Java2 HTML扩展方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java2 HTML扩展方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。打开Java2htmlta
    2023-06-03

    Zookeeper扩展的方法是什么

    这篇文章主要介绍“Zookeeper扩展的方法是什么”,在日常操作中,相信很多人在Zookeeper扩展的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Zookeeper扩展的方法是什么”的疑惑有所
    2023-06-05

    ES6的内置对象扩展方法怎么用

    本篇内容主要讲解“ES6的内置对象扩展方法怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ES6的内置对象扩展方法怎么用”吧!Array的扩展方法1.扩展运算符(展开语法)扩展运算符可以将数
    2023-07-02

    怎么使用Java构造方法创建对象

    要使用Java构造方法创建对象,可以按照以下步骤进行操作:首先,在类中定义一个构造方法。构造方法的名称必须与类的名称相同,没有返回类型(连void也没有),并且可以带有任意数量的参数。在构造方法中,可以使用参数来初始化对象的属性。可以通过使
    2023-10-23

    Java线程的创建方法

    这篇文章主要讲解了“Java线程的创建方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java线程的创建方法”吧!多线程指的是一个程序运行时,会包含多个线程同时进行。Java创建线程有三种
    2023-06-02

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录