java8 -- 方法引用

基于STM32设计的心率脉搏测量仪(项目资料ID:9) 本设计基于STM32F103单片机开发了一款便携式心率脉搏测量仪,通过光电传感器采集脉搏信号,经放大(约1200倍)、滤波(低通及四阶低通滤波)、比较及偏置电压调理后,由STM32进行ADC采样与数据处理。硬件采用Altium Designer设计,包含信号调理电路(限定心率范围43.4-800次/分钟)及电源管理模块;软件基于STM32CubeMX开发,利用队列存储和时间间隔平均算法优化精度,实现多终端显示(OLED实时心率/动画、MATLAB波形分析、蓝牙传输至手机)。系统支持自动启停(检测脉搏启 阅读详情

 

java8 新特新-- 方法引用

java8引入的方法引用:

分4种:

 *    1. 构造器引用              -- 类名::new
 *    2. 静态方法引用          -- 类名::方法名
 *    3. 普通方法引用          -- 实例名::方法名
 *    4.引用某个类型的任意对象的实例的普通方法     -- 类名::实例方法名   (比较难理解)其实就是3.普通方法引用

方法引用也是为了 简化代码的繁琐, 和Lambda表达式差不多,学了 Lambda方法引用就好理解多了

 

使用代码体现下:

      1  构造器引用  格式  类名::new

   创建函数接口

	/*
	 * 获取类的实例
	 */
	@FunctionalInterface
	interface function01<T>{
		 T getObject();
	}
	

 创建实体类

package com.xiaodu.java8.methodcite;

public class Person  {

	private String name;
	
	public Person(){
		this.name = "xiaoming";
	}

	@Override
	public String toString() {
		return "Person [name=" + name + "]";
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public void hello(String str){
		System.out.println("hello " + str);
	}

}

 测试构造器方法引用

	/**
	 * 构造器引用
	 * 	类名::new   (Person::new)
	 */
	@Test
	public void test01() {
//		使用构造器引用
		function01<Person> p = Person::new;	 
		Person pserson1 = p.getObject();
		System.out.println(pserson1);   //Person [name=xiaoming]
//		使用lambda表达式
		function01<Person> p2 = () -> new Person();
		Person person2 = p2.getObject();
		System.out.println(person2);    //Person [name=xiaoming]
		
	}

 2.静态方法引用    格式 类名::静态方法

     创建静态方法

	private static void printMess(String str){
		System.out.println("printMess  = " + str);
	}
	

创建 函数接口(函数接口也可以使用java8自带的,不用自己创建)

	@FunctionalInterface
	interface function02{
		void print(String s);
	}

 测试 静态方法引用

	/**
	 * 静态方法引用
	 * 	  类名::方法名
	 */
	@Test
	public void test02() {
//		静态方法引用
		function02 f1 = TestMethodCite::printMess;
		f1.print("xiaohong");  //printMess  = xiaohong
//		lambda
		function02 f2 = mess -> TestMethodCite.printMess(mess);;
		f2.print("xiaoming");   //printMess  = xiaoming
		
	}

 普通方法引用   格式: 对象实例::普通方法

    创建普通方法

	public int add(int a,int b) {
		return a+b;
	}

创建函数接口

	@FunctionalInterface
	interface function03{
		int operation(int a,int b);
	}

 使用普通方法引用

	
	/**
	 * 普通方法引用
	 */
	@Test
	public void test03() {
//		普通方法引用
		function03 f = new TestMethodCite() :: add;
		int operation = f.operation(12, 23);
		System.out.println(operation);  //35
//		lambda
		function03 f2 = (a,b) -> a+b;
		System.out.println(f2.operation(12, 12));  // 24
		
	}

 4 .  引用某个类型的任意对象的实例的普通方法,看起来和类名::静态方法一样,其实本质还是个 对象实例名::普通方法名

                格式  类名::普通方法名

/**
	 * 引用某个类型的任意对象的实例的普通方法
	 *   和类名:: 静态方法一样的格式
	 *   格式:
	 *     类名:: 普通方法
	 */
	@Test 
	public void test04() {
		/* public int compareToIgnoreCase(String str) 是String 的普通方法
		/  接受一个参数,而sort 的第二个参数为Comparator<? super T> c 类型		
		/  而comparator 是接受两个参数的函数接口  int compare(T o1, T o2);
		 * 总结:一个参数的方法,使用了两个参数的函数方法,不合理,原因是,在排序的时候,每个元素已经是对象了,
		 * 其实底层还是用的   类的实例::普通方法名 这样的模式  -- 也就是普通方法引用只是表面看起来像类名::静态方法这样的引用
		*/		
		Arrays.sort(new String[]{"asd","ddd"}, String::compareToIgnoreCase);
//		是用lambda 表达式 就可以看出来端倪了 
		Arrays.sort(new String[]{"asd","ddd"},(o1,o2) -> o1.compareToIgnoreCase(o2));
		
		/**
		 * 第二种分析,
		 */
//		创建一个 包含TestMethodCite 的集合
		List<TestMethodCite> asList = Arrays.asList(new TestMethodCite());
//		使用方法引用
		asList.forEach(TestMethodCite::str);
//		使用lambda   o 是从集合中取出来的 对象
		asList.forEach(o -> o.str());
		
	}

 

UWB:FiRa Consortium UCI Generic Technical Specification v1.1.0(1)- UCI架构和通用数据包头 如果大家学习过WiFi的SPEC,比如从我的资源里面下载 IEEE 802.11-2007,应该很容易发现,FiRa的spec定义实在是太差了。有现成的好例子不学,非得自己来一套,搞一堆新的名词,其实都是一个意思。比如GID,OID等,而且GID、OID是最先出现的,但是对应表格 还得去附件的最后一项去找。 FiRa是UWB联盟,希望跟WIFi联盟学习一下,把UWB做大做强,而不是自成一派,自命不凡。 阅读详情

相关推荐

继电器的选型规范

触点是继电器中最重要的结构件,触点的使用寿命受触点材料、触点上的电压及电流值(特别是接通时及断开时的电压、电流波形)、负载种类、切换频率、环境情况、接触形式、触点回跳现象等的影响,触点失效多以触点的材料转移、粘连、异常消耗、接触电阻增大等故障现象出现,使用时需要注意。为了稳定工作, DC 型继电器的线圈两端所加电压推荐使用波纹变化率小于±5%的线圈额定电压,否则继电器会工作不稳定,引起触点的粘接或异常损耗,特别是在继电器的驱动电路上连接有电动机、螺线管、变压器等器件时,这种情况更为明显。

qq_43416206的博客 1878

java 8 方法引用

如果Lambda 表达式的代码块只有一行代码,程序就可以省略表达式代码块的花括号,不仅如此,如果只有一行代码,还可以使用方法的引用和构造器的引用 下面为四种引用的实例 public class function { @FunctionalInterface interface Converter{ /*将String转成int的方法*/ int con

u011105400的专栏 272

通达信量化打板选股指标公式源码副图

X_2:=3*LOW;X_13:=4;X_14:=3;X_15:=2;X_16:=1;

gpzb7的博客 4481

Java8新特性—方法引用

Java 8引入了方法引用(method reference)作为一种语言特性,它可以简化代码,使得代码更加易读和易于维护。方法引用可以被视为Lambda表达式的简写形式,可以用来替代Lambda表达式中只调用一个已有方法的情况。总的来说该特性使得Java代码更加简洁和灵活。方法引用可以用于任何函数式接口的实现,尤其是在需要多次调用同一方法时,可以大大简化代码。例如,当需要对一个集合进行排序时,可以使用方法引用来指定排序依据,从而大大简化代码。

小薯条的博客 1535

Python对接海康威视机器视觉工业相机

工业相机只允许单条连接,也就是说MVS如果连接了相机,python代码就无法获取数据,此时必须。相机工具类(读者直接复制)HKCamera_class.py。博主这里出现了一个警告:获取不到相机参数。四、使用Pycharm打开Python代码示例文件夹。三、找到MVS示例代码(代码在MVS的安装位置)二、解压并安装MVS客户端。一、下载MVS客户端。安装一下opencv。

Good Luck 2万+

C#与西门子PLC通讯——新手快速入门

本文基于C# .Net Core和西门子博图TIA Portal V17搭建。由于手边没有西门子PLC实物,所以采用S7-PLCSIM Advanced V4.0作为模拟PLC,以实现0成本完成通讯测试实例。这篇入门笔记解决了新手第一次上手实践时遇到的坑,并且有意忽略了实际项目中会遇到的逻辑交互和更多的数据格式问题。

吾家有猫名探花的博客 2万+

java8 使用方法引用(::)的四种方式

在java8中提供了方法引用的方式,简化了lambda表达式写法,方法引用本质上是lambda表达式的语法糖 并没有提供新的功能和特性,写法为两个冒号 "::" import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.function.BiFunction; public class MethodReferenceTest { public static void

aaa_aaa_aaa_aa的博客 3301

Ubuntu22.04安装搜狗输入法踩坑实录:从依赖报错到完美解决的完整指南

本文详细解析了在Ubuntu 22.04系统上安装搜狗拼音输入法的完整流程,从解决依赖报错到配置fcitx框架,再到最终优化使用体验。针对常见的dpkg安装错误和fcitx冲突问题,提供了实用的解决方案和命令,帮助用户顺利完成安装并享受流畅的中文输入体验。

palm99的专栏 971

JAVA8中方法引用的用法

关于java8引入的方法引用的超详细解读。

谁说自己不可以 1311

电磁兼容(EMC):一文读懂过电应力(EOS)

过电应力(EOS)是指元器件承受的电流或电压应力超过其允许的最大范围。产品的电磁兼容(EMC)失效的一种常见模型为过电应力(EOS),也是电子产品失效的最常见的情况之一。过电应力基本与半导体器件相关,EOS事件包括有:静电放电(ESD)、雷击、系统瞬态、电磁脉冲、充电等。本文将详细讨论一下产品设计中如何关注EOS设计。

linkking27的博客 6485

Test-Time Adaptation Induces Stronger Accuracy and Agreement-on-the-Line

TTA不管是否提高了OOD的泛化性都增强了线性的趋势,TTA的初始目的是为了增强OOD的表现,一个人可能会觉得TTA使得ACL更强的原因是他消除了ID和OOD之间的差距,因此所有模型间ID vs OOD的准确率接近于y=x这条线,但是实际上这个解释不能够反映我们的经验发现,因为虽然TTA将分布之间的偏移简化为一种放缩的分布,但是这个放缩的因子幅值可能很大,也就是α<<1但是r>>1,这就会导致很偏离y=x这条线,而且理论分析也是,虽然ID和OOD的差距很大,但是线性关系还在。

m0_62673638的博客 147

java8:方法引用

Lambda表达式写法: s -> System.out.println(s); 方法引用写法: System.out::println 一、四种方法引用类型 类型 示例 引用静态方法 ContainingClass::staticMethodName 引用某个对象的实例方法 containingObject::instanceMethodName 引用某...

yubin1285570923的博客 370

从零到精通:BLDC电机驱动电路详解与设计思路

这套电机驱动电路从核心控制器到反馈采集模块,涉及了BLDC电机驱动的方方面面。每一个模块的设计和选择都需要综合考虑系统需求和实际使用环境。在实际应用中,很多细微的设计改进都会显著影响电机的运行性能。

weixin_43199439的博客 3099

【Java8】 方法引用 讲解

一、概述 在学习 lambda 表达式之后,我们通常使用 lambda 表达式来创建匿名方法。然而,有时候我们仅仅是调用了一个已存在的方法。如下: Arrays.sort(stringsArray,(s1,s2)->s1.compareToIgnoreCase(s2)); 在Java8中,我们可以直接通过方法引用来简写lambda 表达式中已经存在的方法。 Arrays.so...

sowhat 3万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【Java 8】方法引用

是 Java 8 中引入的一种简洁语法,可以用来代替某些特定的 Lambda 表达式。简单来说,,而不必显式地写出方法的具体实现过程。

小萌学习笔记 885

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java 8的方法引用_Java 8的方法引用

Java 8的方法引用是调用已有方法的Lambda表达式的简写形式,与Lambda表达式一样可作为函数式接口参数。1.实例方法和静态方法方法引用能作为哪种类型的函数式接口,要转化为Lambda表达式后看参数和返回值类型是否和函数式接口的抽象方法一致。(1)t::instanceMethod等价于(x, y,...) -> t.instanceMethod(x, y,...)(2)T::sta...

weixin_36089077的博客 191

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java8的方法引用

目录 一、概述 二、什么是方法引用 三、方法引用例子 四、四种方法引用类型 1、静态方法引用 2、特定实例对象的方法引用 3、任意对象(属于同一个类)的实例方法引用 4、构造方法引用 一、概述 在学习lambda表达式之后,我们通常使用lambda表达式来创建匿名方法。然而,有时候我们仅仅是调用了一个已存在的方法。如下: Arrays.sort(stringsArray,(...

newchitu的博客 399

Java 8 - 05 方法引用

文章目录Pre方法引用 Pre 先来看段代码 Comparator<Enginner> enginnerComparator = new Comparator<Enginner>() { @Override public int compare(Enginner o1, Enginner o2) { return o1.getJob().compareTo(o2.getJob());

小工匠 2万+

Java 8 方法引用

方法引用通过方法的名字来指向一个方法。 方法引用可以使语言的构造更紧凑简洁,减少冗余代码。 方法引用使用一对冒号 :: 。 下面,我们在 Car 类中定义了 4 个方法作为例子来区分 Java 中 4 种不同方法的引用。 package com.runoob.main; @FunctionalInterface public interface Supplier<T> { ...

∑ 251

java8 方法引用_Java8 方法引用

在 Java8 中,你可以使用class::methodName语法引用类或对象的方法。让我们来学习一下 Java 8 中不同类型的方法引用。方法引用类型 - 快速预览Java8 中包含了四种类型的方法引用。方法引用描述例子静态方法引用用于引用类的静态方法Math::max相当于Math.max(x,y)从对象中引用实例方法使用对象的引用来调用实例方法System.out::println...

weixin_42119358的博客 179

Java8方法引用

内容简介: 方法引用Demo详解 通过5种语法使用方法引用 方法引用使用总结 1. 在Java8中方法引用Demo详解 1.1 方法引用出现的背景 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿什么参数做什么操作。那么考虑一种情况:如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再写重复逻辑呢? 1.2 问题的引出 1.3 问题的发现与解决 这段代码的问题在于,对String进行控制台打印输出的操作方案,明明已经有了现成的实现,那就...

qq_40208605的博客 669

java8方法引用符合_java8,方法引用

当我们使用lambda表达式去创建一个匿名方法时,有时我们并没有做什么事情,仅仅是使用了对象中一个存在的方法。这种情况下,通过对象的方法名就能够很明显的推断出要使用 的方法,java8中的方法引用能够做到这一点。首先创建一个Person对象。public classPerson {public enumSex {MALE, FEMALE}String name;LocalDate birthday...

weixin_39926639的博客 134

java8 方法引用好处_Java8新特性之方法引用

一、概述1. 引入方法引用是在Java8中引入的新特性,使用方法引用可以进一步的简化Lambda的一些基本操作。我们知道在JavaScript中方法也是对象,也就是说,我们可以直接对方法进行传递,方法可以作为某个函数的参数。Java的方法引用也是类似的思想,使用方法引用可以对方法的引用进行传递,然后由接受的方法底层进行执行。方法引用使用的一般方式如下:List list = Arrays.asLi...

weixin_39714835的博客 445

关于java8的方法引用

关于java8的方法引用 今天偶然看到一段代码 //首先有一个Studeng类 有一个静态方法,有个实例方法 class Student{ class Student { private String name; public Student(){ } public Student(String name){ this.name = name; } //实例方法 say() public void say() {

sunshinezx8023的博客 279
上一篇: 初识 groovy
下一篇: eclipse 中创建的springboot项目 改变为使用jsp
xiaoduup
博客等级 码龄9年 23粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值