我不是Java开发人员。只是一些基本知识和知识。 我正在尝试使用我创建并将其部署在localhost上的Web服务。 我创建了Web服务URL的代理,并创建了所有Java类。 现在,我制作了一个类,通过传入参数来捕获数据并在ArrayList中获取返回数据。
我的问题是,现在我传入了参数,并在Arraylist结构中返回了值
下面的代码
CustomerLedger val = s.getCustomerLedger();
System.out.println(val.getDocVoucherInvoiceE()+ val.getDocumentPay() +
val.getAmount());
s.getCustomerLedger();
在设置CustomerLedger val = s.getCustomerLedger();时出现错误
这是错误
Type mismatch: cannot convert from List<CustomerLedger> to CustomerLedger
3 quick fixes available
Add cast to 'CustomerLedger'
Change type of 'val' to 'List<CustomerLedger>'
Change return type of 'getCustomerLedger(...)' to 'CustomerLedger'
我尝试的第一个选项是给我Class强制转换异常 第二种选择也没用。
任何对此的解决方案将非常有帮助。 我真的很感激。我已经坚持了一个星期。
我只需要知道应该怎么做才能使最后几行代码正常工作?
答案 0 :(得分:0)
根据错误,该函数将返回列表而不是一个实例,因此您可以进行以下更改:
旧代码:
CustomerLedger val = s.getCustomerLedger();
System.out.println(val.getDocVoucherInvoiceE()+ val.getDocumentPay() +
val.getAmount());
新代码:
List<CustomerLedger> customerLedgerList = s.getCustomerLedger();
CustomerLedger val = customerLedgerList.size()>0?customerLedgerList.get(0):null;
System.out.println(val.getDocVoucherInvoiceE()+ val.getDocumentPay() +
val.getAmount());
因此,基本上,我在这里所做的是将类型CustomerLedger
的变量更改为CustomerLedger
的列表,然后在索引0处获取元素。在这里,我假设{{1} }仅返回列表中的一个元素。如果返回多个元素,则可以相应地更改s.getCustomerLedger()
。