java - 使用对象列表,如何访问对象属性并打印它们?
问题描述
简短的问题。
我正在尝试学习如何使用对象来指定列表等并访问对象属性。我只是无法让它正常工作。
所以,这就是我想要实现的目标:
- 创建列表objList;
- 将对象添加到列表中
- 从列表中获取特定对象
- 在控制台中打印!
我的代码:
对象类
class SearchObject {
final String barName;
final String latitudeDbRef;
SearchObject({this.barName, this.latitudeDbRef});
}
列表声明和对象
List<SearchObject> searchObject = new List();
SearchObject sbo = new SearchObject();
将对象添加到列表
searchObject.add(SearchObject(barName: value, latitudeDbRef: "test"));
访问和打印特定对象
print(searchObject.getRange(index, index + 1).map((sbo) {
String bar = sbo.barName.toString();
String lat = sbo.latitudeDbRef.toString();
print("Barname: $bar");
print("latName: $lat");
}));
输出
flutter: Barname: barname
flutter: latName: test
flutter: (null) <- Get rid of this?
注意: 我已经尝试删除我的 searchObject.getRange() 代码周围的 print() 语句,并且这样做根本不会打印任何内容。
有什么建议么?
此致!
解决方案
class SearchObject {
final String barName;
final String latitudeDbRef;
const SearchObject({this.barName, this.latitudeDbRef});
}
void main() {
final newSearchObject = new SearchObject(barName: "foo", latitudeDbRef: "bar");
// How to populate a list:
// Method 0: inline
final searchObjects = <SearchObject>[newSearchObject];
// Method 1: Using .add
final searchObjects2 = <SearchObject>[];
searchObjects2.add(newSearchObject);
// Method 2: Using the + operator
final searchObjects3 = searchObjects + [newSearchObject];
// Method 3: Using the spread operator:
final searchObjects4 = [...searchObjects, newSearchObject];
// Accessing a specific object using the [] operator
final specificObject = searchObjects4[0]; // Be careful, It will throw if there's no item for that index in the list.
print("barName: ${specificObject.barName}"); // prints: barName: foo
print("latitudeDbRef: ${specificObject.latitudeDbRef}"); // prints: latitudeDbRef: bar
// Iterate over a list to print the details:
searchObjects4.forEach((object) {
print("barName: ${object.barName}"); // prints: barName: foo
print("latitudeDbRef: ${object.latitudeDbRef}"); // prints: latitudeDbRef: bar
});
// Collect the details themselves inside an iterable:
final detailsIterable = searchObjects4.map((object) {
return "barName: ${object.barName}, latitudeDbRef: ${object.latitudeDbRef}";
});
final detailsList = detailsIterable.toList();
print(detailsList); // prints: [barName: foo, latitudeDbRef: bar, barName: foo, latitudeDbRef: bar]
}
我希望这有帮助。
推荐阅读
- sql - 收集值作为表中的 from
- c# - 需要在系统不活动 X 时间后打开 Windows 窗体(如屏幕保护程序)
- python - 打印在 html 内容 Odoo11 中声明的字段变量的值?
- angular - 如何在没有类名和 id 或 name 属性的情况下在 cypress 中获取 Angular 6 UI 元素
- scala - 在列表中查找一个值,该值等于前一个值与另一个列表中另一个值的总和
- java - 我们在我们的产品中使用 Java Applet 技术。是否有其他供应商提供的 Oracle 的 Java Web 插件的替代品?
- python - Python使用melt如何构建这些数据
- php - 只显示一次通知 - PHP - Codeigniter - JS
- javascript - problems with vue-cli for production
- plugins - how can I add plugin to meshlab software