栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Scala和Java代码示例,其中Scala代码看起来更简单/行更少?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Scala和Java代码示例,其中Scala代码看起来更简单/行更少?

让我们改进堆栈器的示例,并使用Scala的case类:

case class Person(firstName: String, lastName: String)

上面的Scala类包含下面的Java类的所有功能, 以及更多其他功能 -例如,它支持模式匹配(Java没有此功能)。Scala
2.8添加了命名和默认参数,这些参数用于为案例类生成一个复制方法,它具有与以下Java类的with *方法相同的功能。

public class Person implements Serializable {    private final String firstName;    private final String lastName;    public Person(String firstName, String lastName) {        this.firstName = firstName;        this.lastName = lastName;    }    public String getFirstName() {        return firstName;    }    public String getLastName() {        return lastName;    }    public Person withFirstName(String firstName) {        return new Person(firstName, lastName);    }    public Person withLastName(String lastName) {        return new Person(firstName, lastName);    }    public boolean equals(Object o) {        if (this == o) { return true;        }        if (o == null || getClass() != o.getClass()) { return false;        }        Person person = (Person) o;        if (firstName != null ? !firstName.equals(person.firstName) : person.firstName != null) { return false;        }        if (lastName != null ? !lastName.equals(person.lastName) : person.lastName != null) { return false;        }        return true;    }    public int hashCode() {        int result = firstName != null ? firstName.hashCode() : 0;        result = 31 * result + (lastName != null ? lastName.hashCode() : 0);        return result;    }    public String toString() {        return "Person(" + firstName + "," + lastName + ")";    }}

然后,在使用中(当然):

Person mr = new Person("Bob", "Dobbelina");Person miss = new Person("Roberta", "MacSweeney");Person mrs = miss.withLastName(mr.getLastName());

反对

val mr = Person("Bob", "Dobbelina")val miss = Person("Roberta", "MacSweeney")val mrs = miss copy (lastName = mr.lastName)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/574085.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号