Java是否有::
运算符?请不要关闭这个问题,我确实搜索了文档,我确信它没有,但我想完全确定。
我可以在Java中使用MyClass::x
或任何在视觉上类似于的内容。
答案 0 :(得分:8)
在Java 8中,引入了运算符::
作为引用方法的方法。基本上,它将方法转换为第一类对象,您可以将其作为参数传递给其他方法,存储在变量中,然后从方法返回。
这种语法的增加是Java 8引入的功能编程范例整体方向的一部分.FP的基本特征是高阶函数 - 接受这样的函数其他函数作为参数或返回函数。这种范例允许人们消除现在遍布Java源代码的大量样板。
答案 1 :(得分:5)
直到并包括Java 7:否!
Java 8:是的!
就是这样。
答案 2 :(得分:0)
在Java 8中,它允许引用类的静态成员,类似于PHP。
public class YourClass {
public static int comparer(String one, String two){
return one.length() - two.length();
}
public static void main(String[] args) {
Arrays.sort(args, YourClass::comparer);
//args are now sorted
}
}
如评论中所述,这仅是Java 8(及更高版本)。 JDK 7及以下版本没有这个。
答案 3 :(得分:-1)
Upto Java 7在java中没有像C ++中那样的双冒号运算符(::)。 但Java 8引入了双冒号运算符,用于引用方法。
示例(静态方法)
public class TestClass {
public void functionTest() {...}
}
我们可以使用双冒号运算符(::)来调用函数'functionTest()'。
TestClass t=new TestClass();
t::functionTest
如果'functionTest()'是静态的,那么我们可以使用类名
直接引用TestClass::functionTest
有四种方法引用(如java doc中所述)
有关更多信息,请参阅java doc