在 Java 中,在将变量作为参数之前声明变量是否是一种最佳实践



假设这段代码:

public static Dataset<Row> getData(SparkSession sparkSession,
StructType schema, String delimiter, String pathToData) {
final Dataset<Row> dataset = sparkSession
.read()
.option("delimiter", "\t")
.csv(pathToData);
StructType nSchema= newSchema(schema, schema.size(), dataset.columns().length);
...
}

在将变量提供给 newSchema 方法之前声明变量并使它们最终确定是否是一种最佳实践,就像这样?

public static Dataset<Row> getData(SparkSession sparkSession,
StructType schema, String delimiter, String pathToData) {
final Dataset<Row> dataset = sparkSession
.read()
.option("delimiter", "\t")
.csv(pathToData);
final int dataSize = dataset.columns().length;
final int schemaSize = schema.size();
StructType nSchema = newSchema(schema, schemaSize, dataSize);
...
}

谢谢

这是一个品味问题。

引入局部变量允许您命名概念。有更简单的语句。简化内部循环。可能会在不引入新功能的情况下删除公共代码。

另一方面。命名很难。如果你把它全部放在一行上,代码会更短。如果代码不依赖于太多局部变量,则分解代码可能会更容易。

对于当地人来说,final可能太过分了,除非代码已经一团糟。

这取决于,假设你有一个像func(list.get(0(.getName.toString(((这样的调用

将其分配给变量并将其插入会更具可读性。有些人可能不喜欢额外的代码行,但对我来说,值得分配给变量。

最新更新