双冒号的使用方法 Java
时间: 2023-06-08 22:06:25 浏览: 27
双冒号是Java中的一种运算符,也叫做方法引用符号。它可以用来引用方法或构造函数,使得代码更加简洁易读。双冒号的使用方法如下:
1. 引用静态方法:
语法:ClassName::staticMethodName
示例:Arrays::sort
2. 引用实例方法:
语法:objectName::instanceMethodName
示例:str::length
3. 引用构造函数:
语法:ClassName::new
示例:Employee::new
需要注意的是,双冒号运算符只能用于函数式接口和Lambda表达式中,不能用于普通方法和属性的引用。
相关问题
java双冒号 实例方法的引用转换例子
可以使用双冒号语法,将一个实例方法引用给定对象的方式作为一个lambda表达式来传递。例如:
```
// 定义一个函数式接口
interface FunctionInterface {
void doSomething(String value);
}
public static void main(String[] args) {
// 定义一个实例
MyClass myClass = new MyClass();
// 通过双冒号语法,将实例方法引用给定对象作为一个lambda表达式传递
FunctionInterface function = myClass::printValue;
// 调用lambda表达式
function.doSomething("Hello World!");
}
// MyClass类定义
class MyClass {
public void printValue(String value) {
System.out.println("Value is: " + value);
}
}
```
这个例子中,我们定义了一个函数式接口 `FunctionInterface`,该接口包含单一抽象方法 `doSomething`。我们通过双冒号语法将 `MyClass` 实例对象 `myClass` 的 `printValue` 方法引用给定对象,作为一个lambda表达式传递给 `function` 变量。最后,我们通过调用 `function.doSomething("Hello World!")` 来调用lambda表达式,并输出 "Value is: Hello World!"。
双冒号方法调用如何传参
双冒号方法调用是 Java 8 中引入的一种新语法,也称为“方法引用”。在使用双冒号方法调用时,可以使用以下两种方式传递参数:
1. 对象::实例方法:如果方法需要传递参数,则第一个参数是方法所属的对象,后面的参数是方法的参数。例如:
```
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.forEach(System.out::println); // 等价于 names.forEach(name -> System.out.println(name));
```
这里 `System.out::println` 表示将 `System.out` 对象的 `println` 方法作为参数传递给 `forEach` 方法,而 `forEach` 方法会将 `names` 列表中的每个元素作为参数传递给 `println` 方法。
2. 类名::静态方法:如果方法是静态方法,则不需要传递对象,直接传递参数即可。例如:
```
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream().mapToInt(Integer::intValue).forEach(System.out::println); // 等价于 numbers.stream().mapToInt(number -> number.intValue()).forEach(number -> System.out.println(number));
```
这里 `Integer::intValue` 表示将 `intValue` 方法作为参数传递给 `mapToInt` 方法,而 `mapToInt` 方法会将 `numbers` 列表中的每个元素作为参数传递给 `intValue` 方法。
相关推荐















