Skip to content

Instantly share code, notes, and snippets.

@artem-zaitsev
Last active January 30, 2019 17:42
Show Gist options
  • Save artem-zaitsev/550b916a9b2b0d359a357b5b33144039 to your computer and use it in GitHub Desktop.
Save artem-zaitsev/550b916a9b2b0d359a357b5b33144039 to your computer and use it in GitHub Desktop.
Код для конвертации Java в Kotlin
enum Gender {
MALE("m"),
FEMALE("f");
String id;
public static Gender getById(String id) {
switch(id) {
case "m": return MALE;
case "f": return FEMALE;
default: throw IllegalStateException();
}
}
}
class House {
private List persons = new ArrayList<Person>();
private List children = new ArrayList<Person>();
private List adultWomen = new ArrayList<Person>();
private List adultMen = new ArrayList<Person>();
public House() {
children.add(new Person("Anna"), 2, FEMALE);
adultMen.add(new Person("Mike"), 45, MALE);
adultWomen.add(new Person("Maria"), 45, FEMALE);
children.add(new Person("Boris"), 15, MALE);
adultMen.add(new Person("Jordan"), 21, MALE);
persons.addAll(children);
persons.addAll(adultWomen);
persons.addAll(adultMen);
}
public List<Person> getAdults() {
List adults = new ArrayList<Person>();
for (Person p: persons) {
if (p.getAge() > 18) {
adults.add(p);
}
}
return adults;
}
public void addPerson(Person p) {
if (p.getAge() > 18) {
if (p.getGender() == MALE) {
adultMen.add(p);
} else {
adultWomen.add(p);
}
} else {
children.add(p);
}
persons.add(p);
}
public void sayHelloToPerson(@Nullable Person p) {
String greet;
if (p != null) {
if (p.getAge() < 14) {
greet = "Hello, little " + p.getName();
} else if (p.getAge() >= 14 && p.getAge() < 18 ) {
switch(p.getGender()) {
case MALE: greet = "Hello boy!";
break;
case FEMALE: greet = "Hello girl!";
break;
}
} else {
switch(p.getGender()) {
case MALE: greet = "Hello man!";
break;
case FEMALE: greet = "Hello woman!";
break;
}
}
}
if (greet != null) {
System.out.print(greet);
}
}
}
public class Person {
private final String name;
private int age;
private final Gender gender;
public Person(String name, Gender gender) {
this(name, 0, gender)
}
public Person(String name, int age, Gender gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Gender getGender() {
return gender;
}
public static Person from(Map<String, String> personMap) {
return Person(personMap.get("name"),
personMap.get("age"),
Gender.getById(personMap.get("gender"))
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment