`

java 8 新特征

    博客分类:
  • jdk
 
阅读更多

    一   接口中实现方法:

    (1)用修饰符static修饰方法

    定义:

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

    调用:

public static void main(String[] args) {
		int a = 3,
				b = 3;
		int add = IMessage.add(a, b);
		System.out.println(add);
	}

   (2)用修饰符default 修饰方法

    定义

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

    实现

public class IMessageImpl implements IMessage {
	
}

   调用:

public static void main(String[] args) {
		IMessage iMessage = new IMessageImpl();
		int a = 1, b = 9;
		int c = iMessage.add(a, b);
		System.out.println(c);
	}

 (二)lamde表达式

    匿名函数

package com.java.demo;

public class TestDemo {

	public interface IMessage {
		public void print();
	}

	public static void main(String[] args) {
		fun(new IMessage() {
			@Override
			public void print() {
                     System.out.println("Hello!");
			}
		});
	}

	public static void fun(IMessage msg) {
		msg.print();
	}

}

 Lamde表达式主要用于解决匿名函数的繁琐

  

package com.java.demo;

public class TestDemo {

	public interface IMessage {
		public void print();
	}

	public static void main(String[] args) {
		fun(()->System.out.println("Hello!"));
	}

	public static void fun(IMessage msg) {
		msg.print();
	}

}

 Lamda 表达式语法

(1)(参数)->单行语句

package com.java.demo;

public class TestDemo {

	public interface IMessage {
		public void print(String arg);
	}

	public static void main(String[] args) {
		fun((arg)->System.out.println(arg));
	}

	public static void fun(IMessage msg) {
		msg.print("Hello!");
	}

}

 

(2)(参数)->{代码块}

package com.java.demo;

public class TestDemo {

	public interface IMessage {
		public void print(String arg);
	}

	public static void main(String[] args) {
		fun((arg)->{
		    	arg = arg.toLowerCase();
			    System.out.println(arg);
			});
	}

	public static void fun(IMessage msg) {
		msg.print("HELLO!");
	}

}

 

(3)(参数)->表达式

package com.java.demo;

public class TestDemo {

	public interface IMessage {
		public int print(int x, int y);
	}

	public static void main(String[] args) {
		fun((x,y)-> x+y );
	}

	public static void fun(IMessage msg) {
		System.out.println(msg.print(1,2));
	}
}

 (三)方法的引用

(1)引用静态方法:类名称::static 方法名;

package com.java.demo;

public class TestDemo {

	public interface IMessage<P,R> {
		public R  header(P p);
	}

	public static void main(String[] args) {
         IMessage<Integer,String> msg  =	String::valueOf;
         String arg = msg.header(1000);
         System.out.println(arg);
	}

}

 

(2)引用对象的方法::实例化对象::普通方法;

package com.java.demo;

public class TestDemo {

	public interface IMessage<P> {
		public boolean  header(P p);
	}

	public static void main(String[] args) {
         IMessage<String> msg  ="wewe"::equals;
         boolean header = msg.header("wewe");
         System.out.println(header);
	}

}

 

(3)引用特定类型的方法:特定类::普通方法;

package com.java.demo;

public class TestDemo {

	public interface IMessage<P> {
		public boolean  header(P p,P r);
	}

	public static void main(String[] args) {
         IMessage<String> msg  =String::equals;
         boolean header = msg.header("wewe","wewe");
         System.out.println(header);
	}

}

 

 

(4)引用构造方法:类名称::new;

 

package com.java.demo;

interface IMessage<P>{
	public P create(String name,int age);
}

class Student{
	private String name;
	private int age;
	public Student (String name ,int age){
		   this.name=name;
		   this.age = age ;
	}
	
	public String toString(){
		return "姓名:"+ this.name + "年齡:"+this.age;
	}
	
} 


public class TestDemo {
	public static void main(String[] args) {
	    IMessage<Student> msg =   Student::new;
	    Student student = msg.create("張志東", 27);
	    System.out.println( student.toString()); 
	
	}

}



 

分享到:
评论

相关推荐

    Java+8实战_Java8_java8_

    1. **lambda表达式**:这是Java 8最显著的特征之一,它允许函数作为一等公民,即可以赋值给变量、作为参数传递和作为返回值。Lambda表达式使得编写简洁、易读的代码成为可能,特别是对于处理集合的操作。 2. **函数...

    java8中文api

    总的来说,"java8中文api"这个文档涵盖了Java 8的所有新特性和重要API,包括Lambda表达式、Stream API、函数式接口、日期和时间API、Optional类以及并发改进等。无论你是初学者还是有经验的开发者,这个文档都将是你...

    Java8-JDK8-新特性学习

    1. **lambda表达式**:这是Java 8最显著的特征之一。Lambda表达式允许开发者以简洁的方式定义匿名函数,使得函数式编程在Java中变得更加便捷。例如,可以使用`()-&gt;System.out.println("Hello, World!")`来创建一个...

    Java8的官方文档

    这是基于Java8的官方文档,使用Easy CHM制作成的CHM文档。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。...

    最新Java JDK 8免安装版(Linux 64位)

    1. **Lambda表达式**:Java 8引入了函数式编程的概念,Lambda表达式是最显著的特征之一。它允许开发者以简洁的方式处理集合,简化多线程编程,并在需要时定义匿名函数。 2. **方法引用和构造器引用**:与Lambda...

    java8 demo源代码

    在这个“java8 demo源代码”压缩包中,我们可以期待看到一系列演示了Java 8新特性的示例代码。以下是这些示例可能涵盖的一些关键知识点: 1. **lambda表达式**:Java 8引入了函数式编程的概念,其中lambda表达式是...

    最新Java JDK 8安装版(MacOS 64位)

    8. **Date/Time API改进**:JDK 8对日期和时间的处理进行了重大改进,引入了新的`java.time`包,替代了过时的`java.util.Date`和`java.util.Calendar`,使日期和时间操作更加直观和灵活。 9. **默认方法**:在接口...

    OnJava8-Examples-master

    《OnJava8-Examples-master》是一个关于Java 8编程实践的资源库,它包含了大量示例代码,旨在帮助开发者深入理解和应用Java 8的新特性。这个压缩包中的内容主要是为了展示如何在实际项目中有效利用Java 8的功能,...

    java8安装包,这是一个java语言的运行软件

    Java programming language具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的"形式和感觉",但它要比C++语言更易于使用,而且在编程时彻底采用了一种"以对象为导向...

    JAVA8新特性总结及案例.doc

    JAVA8新特性总结及案例 JAVA8 中引入的 Lambda 表达式、方法引用和函数式接口是三个重要的新特性,它们之间有紧密的联系,都是为了简洁代码、提高编程效率和灵活性。 一、Lambda 表达式 Lambda 表达式,也称为...

    Java8应用封装,手写ORM,LOG,framework

    在Java开发领域,Java8是一个重要的里程碑,引入了许多新的特性和功能,极大地提高了开发效率和代码的可读性。在这个“Java8应用封装,手写ORM,LOG,framework”的项目中,开发者显然专注于利用Java8的新特性来构建...

    Java SE 8 API文档

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向...

    jdk8解压版jdk-8.rar

    默认方法使接口有点像Traits(Scala中特征(trait)类似于Java中的Interface,但它可以包含实现代码,也就是目前Java8新增的功能),但与传统的接口又有些不一样,它允许在已有的接口中添加新方法,而同时又保持了与旧...

    Beginning Java 8 Language Features

    综上所述,《Beginning Java 8 Language Features》是学习Java 8新特性的理想教材,它不仅详细介绍了语言的基本特征,还深入讲解了如何在实际开发中应用这些特性来解决各种编程问题。读者通过阅读本书,不仅可以了解...

    Java8的6个问题Java开发Java经验技巧共5页.p

    Lambda表达式是Java8最显著的特征之一,它允许我们以简洁的方式编写匿名函数。Lambda可以作为方法参数,或者存储在变量中。例如,我们可以用lambda来实现Comparator接口,进行列表排序: ```java List&lt;String&gt; list...

    java面试题最新版

    16. **面向对象的特征**:封装、继承、多态是面向对象的三大特征。 17. **多态的实现**:Java通过方法重写(Override)和向上转型(Upcasting)实现多态。 18. **抽象类与接口的区别**:抽象类可以包含实现方法,...

    SuperMap iObjects Java 8C后台数据的增删改查

    通过创建`Dataset`对象,我们可以操作特定类型的数据,如创建一个新的矢量数据集。 ### 2. 添加数据 添加数据涉及将地理对象(Geometry)添加到数据集中。首先,需要创建一个`Feature`对象,设置其几何形状...

    java求矩阵的特征值和特征向量AHP层次分析法计算权重附源代码.docx

    ### Java求矩阵的特征值和特征向量:AHP层次分析法计算权重 #### 一、引言 在计算机科学领域,特别是在数据处理与决策支持系统中,特征值与特征向量是线性代数中的核心概念之一。它们在解决各种问题时发挥着重要...

    java8视频高清.7z

    这个名为"java8视频高清.7z"的压缩包显然包含了关于Java 8的高清教学视频,旨在帮助新手快速掌握这个版本的新特性。以下是对这些关键知识点的详细解释: 1. **Lambda表达式**:Lambda表达式是Java 8最显著的特征之...

Global site tag (gtag.js) - Google Analytics