方法引用符::

package com.yy;

/**

  • 方法引用 把方法体拿来使用 方法引用也是lambda表达式的体现
  • 构造方法引用
  • 普通方法
  • 静态方法
  • @author WHD

*/
public class Test1 {
public static void main(String[] args) {
// :: 表示方法引用
// 构造方法引用

	//对象名::方法名
	//类名::new  调用无参构造方法
	//接口只有一个方法时
	//引用的方法内容自动重写覆盖
	Info info = Book :: new;
	
	
	//调用重写后的方法
	info.print();
	
	//getClass()返回其class类型,输出其字符串名字
	System.out.println(info.getClass().getName());
	
	//自动重写Info接口方法,()空参,函数体System.out.println("这是一本书");
	Info info1 = ()-> System.out.println("这是一本书");
	
	//输出重写后的方法
	info1.print();
	
	//valueOf把形参转为字符串
	String flag = String.valueOf(false);
	
	//输出字符串长度length
	System.out.println(flag.length());
	
	
	// 静态方法引用
	//Message接口只有一个方法,String 类的valueOf方法自动重写覆盖该方法
	Message<String,Boolean> ms = String :: valueOf;
	
	//泛型对像ms调用重写后的getStr方法,将形参true转变为字符串,输出其length长度4
	System.out.println(ms.getStr(true).length());
	
	// 普通方法引用
	//创建字符串
	String str = "abcd**";
	
	//是否以字符"a"开头
	System.out.println(str.startsWith("a"));
	
	//字符串的 startsWith方法重写TestStartsWith接口里的方法
	TestStartsWith<Boolean,String> ts = str :: startsWith;
	
	//输出重写的方法并传参"*"  ,false
	System.out.println(ts.test("*"));
	
	System.out.println("====================");
	
	// System.out里的println()方法重写PrintHello接口里的唯一方法
	PrintHello ph = System.out :: println;
	
	//调用重写后的方法并传参"hello world"
	ph.print("hello world");
	
}

}
@FunctionalInterface
interface PrintHello{
void print(String str);
}

@FunctionalInterface
interface TestStartsWith<R,P>{
R test(P p);
}

/**

  • 这个接口只有一个抽象方法 用于引用静态方法
  • @author WHD
  • return表示返回值类型
  • parameter表示参数类型

*/
@FunctionalInterface
interface Message<R,P>{
R getStr(P p);
}

@FunctionalInterface
interface Info{
void print();
}

class Book{

public Book() {
	System.out.println("这是一本书《金瓶梅图文版》");
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值