Java - 将List <object>转换为List <entity>

时间:2017-03-07 11:22:52

标签: java spring spring-boot

我试图将一个对象列表转换为我自己的类类型列表。到目前为止,我所做的是:

List<Company> companies = (List<Company>)(Object) repository.findAllCompanyNames();

repository.findAllCompanyNames()正在返回List<Object>

我的公司课程如下:

public class Company {

    public Company(){}

    public Company(int id, String name){
        this.id = id;
        this.name = name;
    }

    public int id;
    public String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

我没有得到任何错误,问题是演员之后companies的价值,它是:

companies = {ArrayList@11743}  size = 4
 0 = {Object[2]@11753} 
  0 = {Integer@11761} "1"
  1 = "Company 1"
 1 = {Object[2]@11754} 
  0 = {Integer@11785} "3"
  1 = "Company 3"
 2 = {Object[2]@11755} 
  0 = {Integer@11779} "4"
  1 = "Company TT"
 3 = {Object[2]@11756} 
  0 = {Integer@11764} "5"
  1 = "Company 34"
 4 = {Object[2]@11757} 

我认为companies列表应包含公司对象,如:

- Id: 1
- Name: Company 1
- etc ..

知道它发生了什么吗?

2 个答案:

答案 0 :(得分:4)

不,列表不应包含Company个对象,因为您不是检索公司,而是检查它们的名称。该方法称为findAllCompanyNames(),它返回List<Object[]>(运行时类型),每个元素包含(可能)公司ID和公司名称。

如果您显示存储库类,它应该更加明显,您可能会找到一个返回所需公司对象的方法。

答案 1 :(得分:0)

您是否可以使用 FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, email"]).start(completionHandler: { (connection, result, error) -> Void in if (error == nil){ let fbDetails = result as! NSDictionary print(fbDetails) }else{ print(error?.localizedDescription ?? "Not found") } }) ?您可以使用java-8

List<Object[]>转换为List<Company>
stream

现在我们可以将List<Object[]> companies = Arrays.asList( new Object[]{1, "Company nam 1"}, new Object[]{2, "Company nam 2"} ); 转换为companies

List<Company>

我希望这会有所帮助。