/**
* @author 渣渣辉
* @param <T>引用方法参数类型
* @param <U>引用方法返回类型
*/
interface Message<T, U> {
public U transform(T t);
}
public class QuoteDemo01{//静态方法引用
public static void main(String[] args) {
Message<Integer, String> msg = String::valueOf;//引用的是String类public static String valueOf(int x);
String str = msg.transform(16000);
System.out.println(str.replaceAll("0", "8"));
}
}
/**
* @author 渣渣辉
*
* @param <T>引用方法返回值类型
* @param <U>引用方法参数类型
*/
interface Message<T, U> {// 普通方法引用
public T upper(U u);
}
public class QuoteDemo02 {
public static void main(String[] args) {
Message<String, String> msg = String::toUpperCase;// 引用的是String普通方法:public String toUpperCase(String str);
String str = msg.upper("fork you");
System.out.println(str);
}
}
/**
* @author 渣渣辉
* @param <T>泛型
*/
interface Message<T> {// 普通方法引用
public int compare(T t1, T t2);
}
public class QuoteDemo03 {
public static void main(String[] args) {
Message<String> msg = String::compareTo;
System.out.println(msg.compare("S", "B"));
}
}
/**
* @author 渣渣辉
* @param <T>泛型
*/
@FunctionalInterface
interface Message<T> {// 普通方法引用
public T creat(String s, double d);
}
class Book {
private String title;
private double price;
public Book(String title, double price) {
this.title = title;
this.price = price;
}
@Override
public String toString() {
return "书名:" + this.title + "价格:" + this.price+"元";
}
}
public class QuoteDemo04 {// 引用构造方法
public static void main(String[] args) {
Message<Book> msg = Book::new;
Book book = msg.creat("《Java从入门到放弃》", 99.9);
System.out.println(book);
}
}