小编She*_*Wei的帖子

Kotlin中字符串模板和日志框架的占位符有什么区别?

现在,我正在尝试用 Kotlin 重写我的 java 应用程序。然后,我遇到了日志语句,比如

log.info("do the print thing for {}", arg);
Run Code Online (Sandbox Code Playgroud)

所以我有两种方法可以在 Kotlin 中执行日志操作,例如log.info("do the print thing for {}", arg)log.info("do the print thing for $arg")。第一个是 Slf4j 或 Log4j 等框架的委托格式;第二个是使用 Kotlin 字符串模板。

那么它们有什么区别,哪个性能更好呢?

logging stringtemplate kotlin

4
推荐指数
1
解决办法
2405
查看次数

为什么我的 java lambda 表达式无法工作,而其命令式样式却可以正常工作?

我有多年的 Java 8 及其 lambda 经验。但当我开发一个 hello-world 大小的 Spark 程序时,我遇到了一个疯狂的问题。

这里我有一个Java类,其中的Data注释来自Lombok:

@Data
public class Person implements Serializable {
  private String name;
  private Long age;
}
Run Code Online (Sandbox Code Playgroud)

然后我构建了一个包含Persion类对象的 java 列表:

        Person p1 = new Person("sb", 1L);
        Person p2 = new Person("sth", null);
        List<Person> list = new ArrayList<>(2);
        list.add(p1);
        list.add(p2);
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都很好。然后我尝试使用该列表生成 Spark 数据集:

SparkSession session = SparkSession.builder().master("local[1]").appName("SparkSqlApp").getOrCreate();
Encoder<Person> personEncoder = Encoders.bean(Person.class);
Dataset<Person> dataset1 = session.createDataset(list, personEncoder);
dataset1.foreach(new ForeachFunction<Person>() { // 1
            @Override
            public void call(Person person) throws Exception {
                System.out.println(person);
            } …
Run Code Online (Sandbox Code Playgroud)

java lambda jvm java-8 apache-spark-sql

2
推荐指数
1
解决办法
225
查看次数

标签 统计

apache-spark-sql ×1

java ×1

java-8 ×1

jvm ×1

kotlin ×1

lambda ×1

logging ×1

stringtemplate ×1