java - 哈希映射将多个域链接到一份报告中 - Java Eclipse
问题描述
我是 Java 新手,正在使用 Java Eclipse,所以请善待!我希望我能正确地提出这个问题,所以它是有道理的。
我有四个域 - 每个域都从四个不同的服务器中提取数据,因此需要将它们分开。但现在我需要创建一个报告,将四个域中的所有数据链接到一个报告中。有人建议使用我以前没有使用过的 hashmaps。我的四个域每个都有两个可以用作键的字段 - CostCenter 和 Serial。被提取的数据来自全国各地的机器。我需要一份报告中每台机器的所有数据。
这一切都被添加到一个现有项目中,该项目创建一个带有选项卡的网页,供用户单击以查看各种表格并获取特定于某个位置的数据,或者为所有机器/位置的每个页面创建一个报告。我只需要添加一个新链接供用户单击,该链接将为他们创建此电子表格。
我已经创建了域(DAO、DAOImpl、DTO 等),然后我将在我的 MainService.java 中创建组合报告。以下是我的 MainService 中声明的域(列表):
public List<Volume> getVolumeReport();
public List<BadFmPumps> getBadFmPumpsReport();
public List<BadCorobPumps> getBadCorobPumpsReport();
public List<McService> getMcServiceReport();
这是从每个数据库(域)中提取的数据:
public class Volume {
private String costCenter;
private String DAD;
private String division;
private String model;
private String serial;
private String numDispensers;
private String colorantSys;
private String CCEGals2017;
private String BACGals2017;
private String CCEGals2018;
private String BACGals2018;
private String DNR2017;
private String DNR2018;
private String DNR2019;
public class BadFmPumps {
private String costCenter;
private String model;
private String serial;
private String badFmPumps;
private String over10;
private String under10;
public class BadCorobPumps {
private String costCenter;
private String model;
private String serial;
private String badPumpCount;
public class McService {
private String costCenter;
private String model;
private String serial;
private String crChargeTotals;
private String emgCalls;
因此,我需要将这些数据提取到 CostCenter + Serial 匹配的一个报告中。如何声明每个对象的哈希图以及如何声明密钥?
编辑 - -
我想我在这里有一些东西
public List<Volume> getVolumeReport();
Map<String, Volume> VolumeMap = new HashMap<String, Volume>();
for (Volume dispenser : VolumeList)
{
String volumeKey = new StringBuilder().append(Volume.getCostCenter()).append(Volume.getSerial()).toString();
VolumeMap.put(volumeKey, dispenser);
}
这个对吗?我收到一个语法错误 - Map 声明
Map<String, Volume> VolumeMap = new HashMap<String, Volume>();
给了我错误
Syntax error on token ";", { expected after this token
那里有什么我需要改变的吗?
解决方案
您的代码中有一些不寻常的东西。我的猜测是你来自 C# 你没有使用正确的命名约定在这里看到它:https ://www.oracle.com/technetwork/java/codeconventions-135099.html
您定义了错误的方法,错误不在 Map 中,而是在方法定义中
public List<Volume> getVolumeReport(); <-------- this
应该
public List<Volume> getVolumeReport() {
然后在其末尾关闭您的方法(使用}
)。
Volume
在你的 FOR 中,当你应该使用你创建的变量时,你试图直接访问方法:dispenser
String volumeKey = new StringBuilder()
.append(Volume.getCostCenter())
.append(Volume.getSerial())
.toString();
应该
String volumeKey = new StringBuilder()
.append(dispenser.getCostCenter())
.append(dispenser.getSerial())
.toString();
推荐阅读
- python - 用于训练的张量流中的图像输入错误
- json - JSON 结果将值传递到另一个字段以进行超链接
- javascript - 如何在每次迭代中使用 reduce() 到 console.log?
- c++ - 当我在多个数组中有更多输入数据时,如何在 C++ 中创建排序结构?
- java - 如何使用 JPA 仅更新数据库中的指定列?
- javascript - 是否有可能获得匹配的 RegEx 的值?如果是这样,应该怎么做?
- api - Rally API 创建 ConversationPost
- javascript - 数据表按列名排序
- typescript - 如何组合、组织类型以将相似的函数合并为一个通用函数
- swift - SwiftUI 集成 UIKit(iOS 应用)中 @Binding 变量的奇怪行为