SORU
1 HAZİRAN 2010, Salı


Scala kod daha basit görünüyor Scala ve Java kod örnekleri/daha az satır var mı?

İhtiyacım olan bazı kod örnekleri (ve ben de gerçekten merak onları) Scala ve Java kod gösteren Scala kod daha basit ve kısa bir kod yazılı Java (elbette her iki örneği de çözmek gerekir aynı sorun).

"Eğer bu Scala soyut fabrika" o zaman bu da kabul edilebilir. çok daha hantal görünecek Java gibi yorum Scala örnek ise sadece orada

Teşekkürler!

Kabul this bütün cevapların çoğunu beğendim

CEVAP
1 HAZİRAN 2010, Salı


stacker's example geliştirmek ve Scala kullanalım case classes:

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

Yukarıda Scala sınıf aşağıda Java sınıfının tüm özellikleri içerirve biraz daha- pattern matching destekler örnek Java yok. Scala 2.8 aşağıdaki Java sınıfı* metotlar ile aynı yeteneği sağlar, bu durumda sınıflar için copy method Bir oluşturmak için kullanılan adlandırılmış ve varsayılan argümanlar, ekler.

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   ")";
    }
}

Sonra da kullanım alanları var (elbette):

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

Karşı

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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • CNET

    CNET

    5 Mayıs 2006
  • TouchePro

    TouchePro

    27 EYLÜL 2007