java - 有没有办法实现与 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"}]
解决方案
只需创建第二个构造函数:
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(或任何您想要调用的名称)。
推荐阅读
- angular - 在功能模块中使用redux store
- angular - 将组件动态添加到导入库的子路由
- unit-testing - 对需要从 dynamodb 查询的节点 js 进行 mocha 和 chai 单元测试
- sapui5 - SAPUI5 获取日历子元素并添加样式类
- reactjs - 在 antd Form + ReactJs 中使用 antd Tooltip
- azure-data-lake - 在 SQL Server 2016 版本中创建“外部数据源”时出错,尝试将本地 SQL Server 与 Azure Data Lake 连接
- python - 使用 Python 进行 Eclipse EMF 模型查询
- rabbitmq - RabbitMQ 发布和使用 .NET 客户端的 MSSQL 事务之间的事务范围
- javascript - Reactjs 子目录未在 IIS 服务器上加载
- javascript - 如何使用jQuery为每一行的单选按钮添加计数?