当前位置: 首页 > news >正文

网站防止恶意注册山东网站建设设计公司

网站防止恶意注册,山东网站建设设计公司,做机械产品用什么网站,wordpress链接默认是什么样子5.1 概述 只有一个抽象方法的接口我们称之为函数接口。 JDK的函数式接口都加上了 FunctionalInterface 注解进行标识。但是无论是否加上该注解只要接口中只有一个抽象方法#xff0c;都是函数式接口。 在Java中#xff0c;抽象方法是一种没有方法体#xff08;实现代码FunctionalInterface 注解进行标识。但是无论是否加上该注解只要接口中只有一个抽象方法都是函数式接口。 在Java中抽象方法是一种没有方法体实现代码的方法只有声明而没有具体的实现。它用关键字 abstract 进行声明通常存在于抽象类或接口中。抽象方法的存在是为了让子类或实现类强制性地提供对这个方法的具体实现。 以下是抽象方法的一些特点和规则 没有方法体 抽象方法只有方法声明没有具体的实现代码。 关键字 abstract 抽象方法使用 abstract 关键字进行声明。 存在于抽象类或接口中 抽象方法通常存在于抽象类或接口中。如果一个类中包含抽象方法那么该类必须被声明为抽象类。 强制子类实现 子类继承抽象类或实现接口时必须提供抽象方法的具体实现否则子类也必须声明为抽象类。 下面是一个简单的例子演示了抽象方法的使用 abstract class Shape {// 抽象方法表示计算面积的操作abstract double calculateArea(); }class Circle extends Shape {double radius;Circle(double radius) {this.radius radius;}// 实现抽象方法Overridedouble calculateArea() {return Math.PI * radius * radius;} }class Rectangle extends Shape {double length;double width;Rectangle(double length, double width) {this.length length;this.width width;}// 实现抽象方法Overridedouble calculateArea() {return length * width;} }public class Main {public static void main(String[] args) {Circle circle new Circle(5);System.out.println(Circle Area: circle.calculateArea());Rectangle rectangle new Rectangle(4, 6);System.out.println(Rectangle Area: rectangle.calculateArea());} }在上述例子中Shape 类是一个抽象类包含了一个抽象方法 calculateArea。Circle 和 Rectangle 类都继承自 Shape 类并分别实现了 calculateArea 方法。这样通过抽象方法我们可以在不同的子类中提供特定的实现实现多态性。 5.2 常见函数式接口 在Java中函数式接口是一个只包含一个抽象方法的接口。从Java 8开始引入了lambda表达式和函数式接口的概念使得函数式编程变得更加便利。以下是一些常见的函数式接口 Runnable 方法签名 void run()用于表示可以在一个线程中运行的代码块。 Callable 方法签名 V call() throws Exception与Runnable类似但可以返回一个结果并抛出异常。 Comparator 方法签名 int compare(T o1, T o2)用于比较两个对象。常用于排序算法或集合操作。 ActionListener 方法签名 void actionPerformed(ActionEvent e)用于处理图形用户界面 (GUI) 中的动作事件。 Callable 方法签名 V call() throws Exception用于表示一个可以调用并返回结果或抛出异常的任务。 Supplier 方法签名 T get()用于提供一个值。通常在延迟计算中使用只有在需要时才计算。 Consumer 方法签名 void accept(T t)用于接受一个参数并执行某些操作没有返回值。 Function 方法签名 R apply(T t)用于接受一个参数并返回结果。 Predicate 方法签名 boolean test(T t)用于测试某个条件是否满足返回一个布尔值。 BiFunction 方法签名 R apply(T t, U u)与Function类似但接受两个参数。 UnaryOperator 方法签名 T apply(T t)表示一元操作接受一个参数并返回结果参数和返回值的类型相同。 BinaryOperator 方法签名 T apply(T t1, T t2)表示二元操作接受两个参数并返回结果参数和返回值的类型相同。 这些函数式接口在java.util.function包中定义。它们为Lambda表达式提供了一种方便的方式使得在Java中进行函数式编程变得更加简洁和灵活。 - Consumer 消费接口 根据其中抽象方法的参数列表和返回值类型知道我们可以在方法中对传入的参数进行消费。 Consumer 是 Java 中的一个函数式接口用于表示接受一个参数并在处理后不返回任何结果的操作。它包含一个名为 accept 的抽象方法该方法接受一个参数执行某些操作但没有返回值。 接口定义如下 FunctionalInterface public interface ConsumerT {void accept(T t);// 其他默认方法和静态方法省略 }Consumer 接口的泛型类型 T 表示参数的类型。你可以使用 Consumer 接口来执行各种消费操作例如打印、修改对象的状态等。 以下是一个简单的例子演示了如何使用 Consumer 接口 import java.util.ArrayList; import java.util.List; import java.util.function.Consumer;public class ConsumerExample {public static void main(String[] args) {// 创建一个列表ListString names new ArrayList();names.add(Alice);names.add(Bob);names.add(Charlie);// 使用 Consumer 接口打印每个名称ConsumerString printName (String name) - System.out.println(name);// 遍历列表并对每个元素执行 Consumer 操作names.forEach(printName);} }在这个例子中我们创建了一个 Consumer 对象 printName它负责打印字符串。然后我们使用 forEach 方法遍历名字列表并对每个名字应用 printName 操作。 注意由于 Consumer 是一个函数式接口因此可以使用 lambda 表达式来简化匿名类的创建。在上述例子中(String name) - System.out.println(name) 就是一个 Consumer 的 lambda 表达式。 - Function 计算转换接口 根据其中抽象方法的参数列表和返回值类型知道我们可以在方法中对传入的参数计算或转换把结果返回 Function 是 Java 中的一个函数式接口用于表示接受一个参数并返回结果的操作。它包含一个名为 apply 的抽象方法该方法接受一个参数并返回计算的结果。 接口定义如下 FunctionalInterface public interface FunctionT, R {R apply(T t);// 其他默认方法和静态方法省略 }Function 接口的泛型类型 T 表示输入的参数类型而泛型类型 R 表示返回值的类型。你可以使用 Function 接口来执行各种转换和计算操作。 以下是一个简单的例子演示了如何使用 Function 接口 import java.util.function.Function;public class FunctionExample {public static void main(String[] args) {// 创建一个 Function 对象用于将字符串转换为整数FunctionString, Integer stringToInteger Integer::parseInt;// 使用 apply 方法进行转换Integer result stringToInteger.apply(123);System.out.println(Result: result); // 输出: Result: 123} }在这个例子中我们创建了一个 Function 对象 stringToInteger它负责将字符串转换为整数。然后我们使用 apply 方法将字符串 123 应用于 stringToInteger得到转换后的整数结果。 由于 Function 是一个函数式接口因此可以使用 lambda 表达式来简化匿名类的创建。在上述例子中Integer::parseInt 就是一个 Function 的 lambda 表达式。 - Predicate 判断接口 根据其中抽象方法的参数列表和返回值类型知道我们可以在方法中对传入的参数条件判断返回判断结果 Predicate 是 Java 中的一个函数式接口用于表示一个断言判断条件接受一个参数并返回一个布尔值。它包含一个名为 test 的抽象方法该方法接受一个参数并返回一个布尔值表示是否满足某个条件。 接口定义如下 FunctionalInterface public interface PredicateT {boolean test(T t);// 其他默认方法和静态方法省略 }Predicate 接口的泛型类型 T 表示输入的参数类型。你可以使用 Predicate 接口来进行各种条件判断例如筛选集合元素、过滤数据等。 以下是一个简单的例子演示了如何使用 Predicate 接口 import java.util.Arrays; import java.util.List; import java.util.function.Predicate;public class PredicateExample {public static void main(String[] args) {// 创建一个 Predicate 对象用于判断字符串是否包含字母 aPredicateString containsA s - s.contains(a);// 创建一个字符串列表ListString words Arrays.asList(apple, banana, orange, grape);// 使用 Predicate 进行筛选System.out.println(Words containing a:);for (String word : words) {if (containsA.test(word)) {System.out.println(word);}}} }在这个例子中我们创建了一个 Predicate 对象 containsA它负责判断字符串是否包含字母 “a”。然后我们使用该 Predicate 对象对字符串列表进行筛选只输出包含字母 “a” 的单词。 由于 Predicate 是一个函数式接口因此可以使用 lambda 表达式来简化匿名类的创建。在上述例子中s - s.contains(a) 就是一个 Predicate 的 lambda 表达式。 - Supplier 生产型接口 根据其中抽象方法的参数列表和返回值类型知道我们可以在方法中创建对象把创建好的对象返回。 Supplier 是 Java 中的一个函数式接口用于表示一个生产者不接受任何参数但返回一个结果。它包含一个名为 get 的抽象方法该方法不接受任何参数并返回一个结果。 接口定义如下 FunctionalInterface public interface SupplierT {T get();// 其他默认方法和静态方法省略 }Supplier 接口的泛型类型 T 表示返回值的类型。你可以使用 Supplier 接口来生成或提供数据通常在需要延迟计算或按需生成值的场景中使用。 以下是一个简单的例子演示了如何使用 Supplier 接口 import java.util.function.Supplier;public class SupplierExample {public static void main(String[] args) {// 创建一个 Supplier 对象用于提供随机数SupplierInteger randomSupplier () - (int) (Math.random() * 100);// 获取并输出随机数int randomNumber randomSupplier.get();System.out.println(Random Number: randomNumber);} }在这个例子中我们创建了一个 Supplier 对象 randomSupplier它负责生成一个介于 0 到 100 之间的随机整数。然后我们使用 get 方法获取并输出这个随机数。 由于 Supplier 是一个函数式接口因此可以使用 lambda 表达式来简化匿名类的创建。在上述例子中() - (int) (Math.random() * 100) 就是一个 Supplier 的 lambda 表达式。 5.3 常用的默认方法 and 我们在使用Predicate接口时候可能需要进行判断条件的拼接。而and方法相当于是使用来拼接两个判断条件。 例如 打印作家中年龄大于17并且姓名的长度大于1的作家。 ListAuthor authors getAuthors();StreamAuthor authorStream authors.stream();authorStream.filter(new PredicateAuthor() {Overridepublic boolean test(Author author) {return author.getAge()17;}}.and(new PredicateAuthor() {Overridepublic boolean test(Author author) {return author.getName().length()1;}})).forEach(author - System.out.println(author)); or 我们在使用Predicate接口时候可能需要进行判断条件的拼接。而or方法相当于是使用 || 来拼接两个判断条件。 例如 打印作家中年龄大于17或者姓名的长度小于2的作家。 // 打印作家中年龄大于17或者姓名的长度小于2的作家。ListAuthor authors getAuthors();authors.stream().filter(new PredicateAuthor() {Overridepublic boolean test(Author author) {return author.getAge()17;}}.or(new PredicateAuthor() {Overridepublic boolean test(Author author) {return author.getName().length()2;}})).forEach(author - System.out.println(author.getName())); negate Predicate接口中的方法。negate方法相当于是在判断添加前面加了个! 表示取反 例如 打印作家中年龄不大于17的作家。 // 打印作家中年龄不大于17的作家。ListAuthor authors getAuthors();authors.stream().filter(new PredicateAuthor() {Overridepublic boolean test(Author author) {return author.getAge()17;}}.negate()).forEach(author - System.out.println(author.getAge()));
http://www.zqtcl.cn/news/920659/

相关文章:

  • 做任务的网站有那些wordpress链接在哪里
  • 免费建站模板网站招聘网站哪个好
  • 网站建站推广是啥意思高端网站建设浩森宇特
  • 长治电子商务网站建设中国建设银行总行官方网站
  • 整站营销系统厚街镇网站仿做
  • 舆情分析网站wordpress文章聚合
  • 中国建设银行网站在哪上市cpa自己做网站
  • 网站建设服务支持jquery插件 wordpress
  • 最有效的100个营销方法seo工作室
  • wordpress o2o主题嘉兴网站优化联系方式
  • 网站建设最基础的是什么网站怎么做架构
  • 网站底部怎么修改网站服务器是干什么的
  • 网络营销是营销的网络化吗广州推广seo
  • 茌平做网站推广网站刷链接怎么做的
  • 东莞网站优化推广Wordpress的根目录在哪
  • 备案的网站建设书是什么意思跨境电商代运营公司十强
  • 网站建设的功能要求wordpress typo3
  • 深圳网站平台前程无忧招聘网
  • 个人业余做网站怎么弄wordpress子主题修改
  • 深圳营销型网站建设优化做虚拟币网站需要什么手续
  • 青海市建设局网站西安网站seo推广
  • 广元做网站的公司合肥市建设网
  • 如何做网站不被查如何做网站内部优化
  • 网站建设用什么框架好做网站需要用到哪些开发软件
  • 网站建设工程师待遇wordpress 工具插件
  • 网站怎样做反向链接中国新闻社邮箱
  • 专业的外贸网站建设wordpress后台编辑
  • 德清建设银行网站2016wordpress淘宝客程序
  • 网站建设包括两个方面专业网站设计企业
  • dnf可以去哪个网站做代练导购网站 模板