【问题标题】:custom defined list in java and throwing exception on checking the conditionjava中的自定义列表并在检查条件时抛出异常
【发布时间】:2016-02-17 19:09:24
【问题描述】:

我有这个pojo,下面创建了一个列表显示为pojo

public class BrokerInvoiceLineItem {
    private Date dealDate;
    private String brokerRefId;
    private String receiverName;
    private double notional;
    private double fixedRate;
    private Date maturityDate;
    private double amount;

}

下面是上面pojo类型的列表

 List<BrokerInvoiceLineItem> finalBrokerInvoiceLineItemList

下面是我们获取数据并最终将其存储到我们在上面创建的列表中的方法

 finalBrokerInvoiceLineItemList = brokerInvoice.getLineItems();

当我在调试时检查时,现在在这个列表中,我得到了特定索引处所有属性的值。

现在我想说的是,首先让我们说上面提到的属性现在让我们说是否有任何属性值让我们说如果交易日期在任何索引处为空,那么我想抛出异常或让我们说brokerRefID 为 null 我想以类似的方式抛出一个异常,因此在迭代每个索引的列表时我想检查所有 7 个属性的值,即 dealDate、brokerRefId、receiverName、notional、fixedRate、maturityDate、amount,所以在列表中迭代时,如果存储在每个索引处的任何属性值都为空,我想抛出异常

所以请告知我将如何迭代 finalBrokerInvoiceLineItemList 并在每个索引处检查上述总共 7 个参数的值,即 finalBrokerInvoiceLineItemList 中的值是否为空,如果它为空,那么我应该抛出异常

我尝试过的如下所示是

for(BrokerInvoiceLineItem item : brokerInvoice.getLineItems()) {
    if(item.getDealDate() == null)
        throw Exception();
}

但以上仅针对一个属性,并非所有七个属性

【问题讨论】:

  • 到目前为止你有没有尝试过?
  • @salah 我试过这个 ..for(BrokerInvoiceLineItem item : brokerInvoice.getLineItems()) { if(item.getDealDate() == null) throw Exception(); }
  • @salah 但这仅适用于一个属性
  • @gfgfhjfgjngg 所以你知道如何检查它。为什么不直接复制这一行或使用||
  • @JaroslawPawlak 非常感谢您的快速建议,我一直在考虑一些有效的方法,无论如何,请您提供一个演示,这将有助于掌握更多信息谢谢

标签: java


【解决方案1】:

你有两个选择:

  1. 复制 if 代码以检查所有其他值(使用逻辑或 || 或使用不同的 if 语句引发差异异常)。
  2. 使用反射扫描类并检查它包含的所有值。

第一个选项会运行得更快,但有很多重复的代码。

第二个选项运行速度较慢,但​​会自动拾取并检查添加到类中的新值。

【讨论】:

  • 非常感谢你明白我的意思,我想去反思一下,请你就反思部分提供更多建议,你能不能发布一个小演示,这将是一个很大的帮助提前谢谢
  • 在这个答案中尝试类似的东西:stackoverflow.com/a/7223577/3049628
  • 我还是没能完全掌握,请您发一个小代码作为演示,或者从上面的问题中以我的课程为例,这将有助于我更多地掌握非常感谢
  • 这个例子有你需要的一切。如果您仍然卡住,请尝试阅读反思或做一些教程。
【解决方案2】:

然后你需要通过在条件中添加|| 比较器来测试所有属性:

for(BrokerInvoiceLineItem item : brokerInvoice.getLineItems()) {

if(item.getDealDate() == null || brokerRefId == null || receiverName == null )// ... etc, add all the attribute you want here.
    throw Exception();
}

【讨论】:

  • 非常感谢 mate 真的很有帮助,你也可以告诉我们如何通过反射来实现相同的交叉检查,提前谢谢
猜你喜欢
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 2023-03-18
  • 2020-01-10
相关资源
最近更新 更多