当前位置: 首页 > 编程笔记 >

Java中如何将this和Super关键字与lambda表达式一起使用

韩安顺
2023-03-14
本文向大家介绍Java中如何将this和Super关键字与lambda表达式一起使用,包括了Java中如何将this和Super关键字与lambda表达式一起使用的使用技巧和注意事项,需要的朋友参考一下

lambda表达式中的“ this ”和“ super ”引用与封闭上下文中的引用相同。由于lambda表达式未定义新的作用域,因此 lambda表达式内的“ this ”关键字表示lambda表达式所在的方法的“ this参数

在下面的示例中,this.toString()只调用LambdaTest对象的toString()方法,而不调用Operate实例的toString()方法。

示例

@FunctionalInterfaceinterface Operate {
   int func(int num1, int num2);
   public String toString();
}
public class LambdaTest {
   public static void main(String[] args) {
      LambdaTest test = new LambdaTest();
      test.getResult();
   }
   public void getResult() {
      Operate op = (num1, num2) -> { // lambda 表达式
      System.out.println("hashcode: " + this.hashCode());
         System.out.println("调用 toString(): "+ this.toString());
         return num1 + num2;
      };
      System.out.println("结果: "+ funcInt.func(10, 7));
   }   @Override
   public String toString() {
      System.out.println("Super hashcode: " + super.hashCode());
      return Integer.toString(super.hashCode());
   }
}

输出结果

hashcode: 142257191
Super hashcode: 142257191
调用 toString(): 142257191
结果: 17
 类似资料:
  • 问题内容: 关键字和之间有什么区别? 两者都用来访问类的构造函数吧?你们任何人都可以解释吗? 问题答案: 让我们考虑这种情况 输出将是 第三行正在打印“ animal:eat”,因为我们正在调用。如果我们调用,它将被打印为“ dog:eat”。

  • 主要内容:super调用父类构造方法,super访问父类成员,super和this的区别由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字。super 可以用来访问父类的构造方法、普通方法和属性。 super 关键字的功能: 在子类的构造方法中显式的调用父类构造方法 访问父类的成员方法和变量。 super调用父类构造方法 super 关键字可以在子类的构造方法中显式地调用父类的构造方法,基本格式如下: 其中,parameter-list 指定

  • 问题内容: 在Java中使用关键字的最佳做法是什么?例如,我有以下课程: 没关系,但是Java足够聪明,如果我将构造函数中的语句更改为 那么为什么要使用this关键字呢?(我意识到在某些情况下,完全有必要使用它,我只是在问这种情况)。实际上,出于可读性的考虑,我倾向于仅使用关键字,但是常见的做法是什么?例如,在整个商店中使用它会使我的代码看起来有些混乱 显然,代码很少,但是它说明了我的示例。在这些

  • 我对java中的super关键字有一个问题。请遵循以下示例: 我的观点是,当我在子类中使用Super()时,java如何知道在我的子类中调用哪个构造函数?因为在我的超类中,我有两个没有参数的构造函数;公共双getRadius()和公共双getArea()

  • 问题内容: 当ai遇到关键字时,我正在研究Java中的方法重写。在Internet和其他来源上进行了大量搜索之后,我得出结论,当实例变量的名称与构造函数的参数相同时,将使用关键字。我是对还是错? 问题答案: 是实例中当前实例的别名或名称。它对于消除实例变量与局部变量(包括参数)的区别很有用,但它本身可以用来简单地引用成员变量和方法,调用其他构造函数重载或简单地引用 实例 。适用用途的一些示例(并非

  • 问题内容: 我试图了解java关键字的this实际作用。我一直在阅读Sun的文档,但对于this实际操作仍然不甚了解。 java 关键字 问题答案: 关键字是对当前对象的引用。 另一种思考方式是关键字就像你用来引用自己的人称代词。对于相同的概念,其他语言使用不同的词。VB使用Me和Python约定(因为Python不使用关键字,只是每个方法的隐式参数)将被使用。 如果要引用本质上属于你的对象,你将

  • 问题内容: 说我有一个字符串 和另一个字符串 我如何制作一个能够同时匹配两者的正则表达式,而不必在另一个失败的情况下将模式设置为其他形式呢?我知道会匹配,但不会对进行任何操作,但是()仅会匹配带有小数的那个,而不会返回与匹配的匹配项。 我希望返回: 要么 问题答案: 您可以在一组字符后面加上a ,使其成为可选字符。 你想要一个点后跟任意数量的数字,组合在一起,可选。坚持你的模式:

  • 我正在尝试将文件的绝对值传递给类路径的read函数。 如果我将绝对路径与类路径一起传递,它就会很好地工作。但当我传递嵌入式表达式时,它不起作用 我的代码如下 给定url appServer给定参数creationMethod=“swagger_first”和路径“/integration/rest/rad” 和头X-CSRF-TOKEN=csrfToken*cookie JSESSIONID=JS