java1.8新特性

1.lambda表达式

 

lambda表达式本质上是一段匿名内部类,也可以是一段可以传递的代码

 

 

例子1:

package classes;

 

import java.util.TreeSet;

 

public class JAVA8 {

 

public static void main(String[] args) {

 

//省去了函数实现体的编写麻烦而已

TestOperator add=(x,y)->x+y;

 

 

JAVA8 jAVA8= new JAVA8();

 

jAVA8.test(1,2,add);

}

 

public void test(int x,int y,TestOperator testOperator)

{

 

System.out.print(testOperator.operator(x,y));

}

 

interface TestOperator{ //无接口不欢啊,哈哈

int operator(int x,int y);

}

 

}

 

例子二:

 

  public TreeSet(Comparator<? super E> comparator) { ????这个是什么鬼,限定可比较的元素范围!!!吧 E或者 E的父类??

        this(new TreeMap<>(comparator));

    }

 

报错:

 

TreeSet<Number>  treeSet= new TreeSet<Number>(

 

new Comparator<Integer>(){

 

@Override

public int compare(Integer o1, Integer o2) {

// TODO Auto-generated method stub

return 0;

}}

 

);

 

不报错:

 

TreeSet<Integer>  treeSet= new TreeSet<Integer>(

 

new Comparator<Number>(){

 

@Override

public int compare(Number o1, Number o2) { //说明限制传入的可以是父类,可以看出,super常用于限制方法参数传入,可以是当前或者父,而extends常用于获取,获取到的元素可以是当前元素或者子类,都是限制了范围!!!

// TODO Auto-generated method stub

return 0;

}}

 

);

 

//定义Comparator,取其本质

 

Comparator<Integer> c=(x,y)->Integer.compare(x, y);

 

  TreeSet<Integer>  treeSet2= new TreeSet<Integer>(

 

             c

);

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值