Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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中副作用函数的命名约定是什么?_Java_Function_Lambda - Fatal编程技术网

Java中副作用函数的命名约定是什么?

Java中副作用函数的命名约定是什么?,java,function,lambda,Java,Function,Lambda,差不多是头衔。我需要区分可怕的东西和安全的东西,而不必查看函数体内部。Java的标准是什么?我不能在函数名中加“!” 例如: // convenient when you don't want to update the reference in the objects that were using // param BiFunction<T,U,T> mutableTransformation = (param,operand) -> { //... do op

差不多是头衔。我需要区分可怕的东西和安全的东西,而不必查看函数体内部。Java的标准是什么?我不能在函数名中加“!”

例如:

// convenient when you don't want to update the reference in the objects that were using 
// param 
BiFunction<T,U,T> mutableTransformation = (param,operand) -> {
    //... do operations that alter param using operand    
    return param;
}
//当您不想更新正在使用的对象中的引用时很方便
//param
双函数可变变换=(参数,操作数)->{
//…执行使用操作数更改参数的操作
返回参数;
}

通常,任何以
集合开始的方法都有副作用。作为最近的约定(自Java 8以来),名称中带有
of
with
的方法没有副作用。示例是
java.time
包中的新日期/时间类。

我认为这方面没有一个普遍接受的约定。您能给出两个这样的函数的示例吗?正如EJoshuaS所指出的,我想不出一个通用的惯例。@EJoshuaS但是需要区分,对吗?还是我做错了什么?也许应该设定一个约定……我认为这在很大程度上取决于方法的具体内容。方法名称应该反映方法内容——那么我们应该如何为未知内容的方法推荐名称呢?此外,我认为只要名称反映函数的目的,就应该很容易推断函数是否产生副作用或是纯粹的。我不希望
add
函数执行副作用,但希望
print
函数执行副作用。只要你的名字是描述性的,我不认为这是一个问题。除了
BigDecimal
和类似的不可变类。如果
BigDecimal
是在Java8中创建的,那么它的
setScale
方法可能会被称为
withScale
。这不是没有副作用的约定,而是这些方法的作用。例如,以毫秒为单位制作
持续时间
称为
of millis
。将
持续时间
添加到另一个持续时间称为
plus
。是的,这些都没有副作用,但这不是名字的重点。