Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 8功能接口命名约定?_Java_Lambda_Java 8_Naming Conventions - Fatal编程技术网

Java 8功能接口命名约定?

Java 8功能接口命名约定?,java,lambda,java-8,naming-conventions,Java,Lambda,Java 8,Naming Conventions,有这样的惯例吗? 例如,我有一个谓词:谓词谓词=I->(Ix+y。我应该如何命名它,使变量的类型和意义变得清晰?函数接口没有特定的命名约定。只需根据他们的工作来命名: Predicate<Integer> smallerThanOne = i -> (i < 1); BiFunction<String, String, String> concatenate = (x, y) -> x + y; 谓词smallerThanOne=i->(ix+y;

有这样的惯例吗?

例如,我有一个谓词:
谓词谓词=I->(I<1)
双功能函数=(x,y)->x+y。我应该如何命名它,使变量的类型和意义变得清晰?

函数接口没有特定的命名约定。只需根据他们的工作来命名:

Predicate<Integer> smallerThanOne = i -> (i < 1); 
BiFunction<String, String, String> concatenate = (x, y) -> x + y;
谓词smallerThanOne=i->(i<1);
双函数串联=(x,y)->x+y;

对于您要求的功能接口对象引用,不存在特定的命名约定。您可以使用基本的java命名约定来命名对象引用。我不知道对于包含lambdas/方法引用的变量有任何特殊的命名约定。通常我们不需要它们,我们只在需要的地方使用lambda/方法引用(这也允许它们匹配/使用正在使用它们的方法的泛型类型,而不需要我们指定它们)。但是,如果你真的必须将它们存储在变量中,并且你想命名它们,那么使用像“isSmallerThanOne”或“concatenate”这样有意义的名称。就我个人而言,我倾向于它的实际用途:
谓词smallerThanOne=I<1
我认为Smalltalk遗留下来的一个旧命名约定是方法名应该以动词开头。例如
setSize()
getWidth()
。也许那样的办法行得通<代码>谓词testlessthanne=i<1
lambdas的目的是减少代码。创建比lambda本身更长的变量声明很少有意义(除非您正在缓存捕获的lambda)。您也可以内联它们,而不使用任何变量。