首页 > 解决方案 > 有没有办法实现与 Java 中的下划线选择功能相同的功能?如果是这样,如何?

问题描述

考虑下面的代码:

import java.util.*;
public class Main{

     public static void main(String []args){
        List<Person> items=new ArrayList<>();
        items.add(new Person(1,"hari","aa"));
        items.add(new Person(2,"das","bb"));
        items.add(new Person(3,"giri","cc"));
        System.out.println(items);
        };
     }


class Person{
    int num;
    String name;
    String dept;
    Person(int num,String name,String dept){
        this.num=num;
        this.name=name;
        this.dept=dept;
    }   
}

然后我需要用这个对象构造一个列表,该对象在列表中只有名称和部门属性。有没有办法实现相同的?

例如,现有数组的形式为:[{num:1,name:"hari",dept:"aa"},{num:2,name:"das",dept:"bb"},{num:3 ,名称:"giri",部门:"cc"}]

新数组需要像: [{name:"hari",dept:"aa"},{name:"das",dept:"bb"},{name:"giri",dept:"cc"}]

标签: java

解决方案


只需创建第二个构造函数:

class Person{
    int num;
    String name;
    String dept;
    Person(int num,String name,String dept){
        this.num=num;
        this.name=name;
        this.dept=dept;
    }   
    Person(String name,String dept){
        this.name=name;
        this.dept=dept;
    }   
}

注意:Person 对象仍具有 num 属性,但将设置为默认值 ( 0)。如果这不是您想要的,也许可以使用只有 name 和 dept 的基类 Person,以及具有所有三个属性的子类 IndexedPerson(或任何您想要调用的名称)。


推荐阅读