java - Java - 将对象数组存储为另一个对象的值并调用该值的字段
问题描述
我想将项目 i1 和 i2 作为数组存储在用户参数项目中。我想这部分还可以。
class item {
int quty;
String name;
double nc;
public item(String name, int quty, double nc) {
this.quty = quty;
this.name = name;
this.nc = nc;
}
static item i1 = new item("I1", 10, 6.04);
static item i2 = new item("I2", 14, 8.01);
}
class user {
String name;
double nc;
item[] items; // store item objects as value of user
public user(String name, double nc, item[] items) {
this.name = name;
this.nc = nc;
this.items=items;
}
static user u1 = new user("Tenny", 10.18, new item[]{item.i1, item.i2} ); // user stores two items
}
然后我想调用项目的名称。您可以通过 System.out.println(item.i1.name) 轻松调用项目名称,但我想调用用户 u1 拥有的项目名称。
System.out.println("User has " + Arrays.toString((user.u1.items.name)));
上面没有这样做。怎么做?
解决方案
您调用的方式不正确,因为 Items 是需要索引的数组类型。
user.u1.items[0].name
您可以使用以下代码打印所有用户项目的名称。
for(item i:user.u1.items) {
System.out.println(i.name);
}
推荐阅读
- django - Amazon Linux 2 AMI 上的命令 01_migrate 失败
- java - 通过 gmail 附件查看 HTML 文件
- cypress - 如何在 cypress 中为 oauth2 google 登录执行 e2e 测试?
- javascript - 获取动态添加选项的选项值
- angular - 如何在 Spring Boot 中通过 Rest API 下载文件?
- dhtmlx - 如何在 DHTMLX 甘特图的自动计划中处理任务级日历
- verilog - 16 位 CLA 实例化
- php - Laravel Edit 表单首次加载时显示空白屏幕
- load-balancing - Grafana 无法与负载均衡器一起正常工作
- node.js - 弹性搜索中的条件排序