java返回属性_java – 根据对象属性确定哪个枚举返回
我建議你使用簡(jiǎn)單的繼承與不可變對(duì)象.
所以,首先你必須創(chuàng)建抽象類:
public abstract class AbstractPerson {
private final String name;
private final Optional nickname;
private final boolean speaksEnglish;
private final PersonType personType;
protected AbstractPerson(final String name, final Optional nickname, final boolean speaksEnglish, final PersonType personType) {
this.name = name;
this.nickname = nickname;
this.speaksEnglish = speaksEnglish;
this.personType = personType;
}
public String getName() {
return name;
}
public Optional getNickname() {
return nickname;
}
public boolean getSpeaksEnglish() {
return speaksEnglish;
}
public PersonType getPersonType() {
return personType;
}
}
使用PersonType枚舉:
public enum PersonType {
TypeOne, TypeTwo, TypeThree;
}
現(xiàn)在,我們?cè)谧宇愔杏腥齻€(gè)選項(xiàng)和相應(yīng)的構(gòu)造函數(shù):
public final class EnglishSpeakingPerson extends AbstractPerson {
public EnglishSpeakingPerson(final String name, final String nickname) {
super(name, Optional.of(nickname), true, PersonType.TypeOne);
}
}
public final class Person extends AbstractPerson {
public Person(final String name, final String nickname) {
super(name, Optional.of(nickname), false, PersonType.TypeTwo);
}
public Person(final String name) {
super(name, Optional.empty(), false, PersonType.TypeThree);
}
}
在這種情況下,我們的具體類是不可變的,其類型是在創(chuàng)建時(shí)定義的.您不需要?jiǎng)?chuàng)建if-else梯形圖 – 如果要?jiǎng)?chuàng)建新類型,只需創(chuàng)建新的類/構(gòu)造函數(shù).
總結(jié)
以上是生活随笔為你收集整理的java返回属性_java – 根据对象属性确定哪个枚举返回的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剖析管理所有大数据组件的可视化利器:Hu
- 下一篇: Algs4-1.4.18数组的局部最小元