gpt4 book ai didi

java - 根据条件从 JSON API 中的方法返回不同的对象

转载 作者:行者123 更新时间:2023-12-01 09:33:24 24 4
gpt4 key购买 nike

在我的 Spring mvc 应用程序中,我有一个类 ManagePerson ,它需要返回 Person 或 MinimalPerson ,

如何让它从 getPersons() 返回 Person 或 MinimalPerson ?

ManagePerson.java

public class ManagePerson {

private List<Person> persons;

public ManagePerson(List<Person> persons) {
this.persons = persons;
}

public List<Person> getPersons() {
return persons;

}

}

Person.java

public class Person implements Comparable<Person> {

private String name;
private Long id;

public Person(String name, Long id) {
this.name = name;
this.id = id;
}

public String getName() {
return name;
}

public Long getId() {
return id;
}

@Override
public int compareTo(Person o) {

if(this.getId() == null) {
return -1;
}

if(this.getName() != null && o.getName() == null) return -1;
if(this.getName() == null && o.getName() != null) return 1;
if(!this.getName().equalsIgnoreCase(o.getName())) {
return this.getName().compareToIgnoreCase(o.getName());
}

return 0;
}

}

MinimalPerson.java

public class MinimalPerson() {
private Person person;

public MinimalPerson(Person person) {
this.person = person;
}

public String getName() {
return this.person.getName();
}
}

最佳答案

让 Person 扩展 MinimalPerson,然后你的 ManagePerson 类必须是:

public class ManagePerson<T extends MinimalPerson> {

private List<T> persons;

public ManagePerson(List<T> persons) {
this.persons = persons;
}

public List<T> getPersons() {
return persons;

}

}

这利用了 Java 的泛型

这里需要注意的一件重要事情是,对于 Java 泛型, <T extends MinimalPerson>将匹配 Person 和 MinimalPerson。

关于java - 根据条件从 JSON API 中的方法返回不同的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39212365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com