首页 > 解决方案 > 在将变量作为参数之前声明变量是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);
 ...
}

谢谢

标签: javavariablesfinal

解决方案


这是一个品味问题。

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

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

final对于当地人来说可能是最重要的,除非代码已经是一团糟。


推荐阅读