最近Java 8的正式版已经推出,今天闲着没事就下载好了java 8 的jdk和jre来尝尝鲜。
首先安装java 8的jdk 和 jre, 下载地址,安装好基础环境后, 可能对于稍微老一点的eclipse会不支持java 8的开发, 此时我们需要对eclipse添加java 8的支持,我们可以通过更新 JDT 来支持 Java 8。
步骤如下:
http://build.eclipse.org/eclipse/builds/4P/siteDir/updates/4.3-P-builds
Button mJumpButton = (Button) findViewById(R.id.button_jump); mJumpButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); } });在上面的代码中,我们创建了一个onClickLisnter的匿名类,然后覆写了onClick方法,在该方法中对button的点击事件作出处理。可以看出, 整个功能的代码嵌套有点多,不是很简洁。
package com.example.java.lambda; public interface OnClickListener { public void onClick(JView view); }
package com.example.java.lambda; public class JView { // 点击事件监听器 private OnClickListener mClickListener = null; /** * * @param position */ public JView() { } /** * * @return */ public OnClickListener getClickListener() { return mClickListener; } /** * * @param listener */ public void setClickListener(OnClickListener listener) { this.mClickListener = listener; } /** * */ public void click() { if (mClickListener != null) { mClickListener.onClick(this); } } }
/** * * @param args */ public static void main(String[] args) { // 创建一个view JView view = new JView(); // 使用匿名内部类的方式, 老式的写法 view.setClickListener(new OnClickListener() { @Override public void onClick(JView view) { System.out.println("点击事件"); } }); view.click(); // 使用lambda表达式的方式, 新的写法 JView view2 = new JView(); view2.setClickListener((v) -> System.out.println("点击事件(lambda表达式).")); view2.click(); }
@FunctionalInterface public interface OnClickListener { public void onClick(JView view); }
(int a, int b) -> a + b ;也可以省略掉参数的类型, 简写为 :
(a, b) -> a + b ;
() -> System.out.println("no params") ;
(a, b) -> a + b ;用户也可以不显式的调用return 返回结果,lambda会将最后一句的 a + b 结果返回。例如 :
(a, b) -> a + b ;
Java 8中的Lambda表达式,布布扣,bubuko.com
原文:http://blog.csdn.net/bboyfeiyu/article/details/21721975