举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > java获取变量类型 Java Lambda变量捕获

java获取变量类型 Java Lambda变量捕获

2023-05-06 17:17 Java教程

java获取变量类型 Java Lambda变量捕获

java获取变量类型

Java中获取变量类型的方法有很多,主要有以下几种:

1、使用instanceof关键字。instanceof关键字是Java中的一个比较运算符,它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。

Object obj = new String("Hello World"); 
if(obj instanceof String){ 
    System.out.println("obj is a String"); 
} 

2、使用getClass()方法。getClass()方法是Object类中定义的一个方法,该方法返回一个Class对象,该对象表示此Object所表示的实体(类、接口、数组或原始类型)。

 
 Object obj = new String("Hello World"); 
 Class cls = obj.getClass(); 
 System.out.println(cls); // 输出class java.lang.String 
 

3、使用isInstance()方法。isInstance()方法是Class中定义的一个方法,该方法判断指定对象是否与此Class所表示的对象相同或者是其子孙对象。

 
 Object obj = new String("Hello World"); 
 Class cls = obj.getClass(); 
 if(cls.isInstance(obj)){   // 判断obj是否为cls所表示的对象  
     System.out.println("obj is a instance of "+cls);   // 输出obj is a instance of class java.lang.String   }   

4、使用equals()方法。equals()方法也是Object中定义的一个方法,该方法判断指定对象和当前对象是否相同。

  Object obj1 = new String("Hello World");   Object obj2 = new String("Hello World");   if(obj1.equals(obj2)){    // 判断obj1和obj2是否相同    System.out.println("The two objects are equal.");    // 输出The two objects are equal.} 

Java Lambda变量捕获

Java Lambda变量捕获


lambda表达式可以访问最终局部变量或局部非最终初始化只有一次的变量。

例子

下面的代码显示我们可以访问和使用最终的局部变量。

import java.util.function.Function;

public class Main {
  public static void main(String[] argv) {
    final String x = "Hello"; 
    Function<String,String> func1 = y -> {return y + " "+ x ;};
    System.out.println(func1.apply(".cn"));

  }
}

上面的代码生成以下结果。



例2

下面的代码有一个变量x,它不是final,只能初始化一次。我们仍然可以在lambda表达式中使用它。

import java.util.function.Function;

public class Main {
  public static void main(String[] argv) {
    String x = "Hello"; 
    
    Function<String,String> func1 = y -> {return y + " "+ x ;};
    System.out.println(func1.apply(".cn"));
    
  }
}

上面的代码生成以下结果。


例3

下面的代码显示我们不能改变在lambda表达式之外定义的值。

import java.util.function.Function;

public class Main {
  public static void main(String[] argv) {
    String x = "Hello"; 
    
    Function<String,String> func1 = y -> { return y + " "+ x ;};
    System.out.println(func1.apply(".cn"));
    
  }
}

上面的代码生成以下结果。

例4

我们可以更改lambda表达式中的非局部变量。

import java.util.function.Function;

public class Main {
  static String x = "Hello"; 
  public static void main(String[] argv) {

    
    Function<String,String> func1 = y -> {x="a"; return y + " "+ x ;};
    System.out.println(func1.apply(".cn"));
    
  }
}

上面的代码生成以下结果。

阅读全文
以上是VUE中文网为你收集整理的java获取变量类型 Java Lambda变量捕获全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们