java - Salesforce Apex(或 Java) - 将属性值从一个对象分配给同一类中的另一个对象
问题描述
我在使用类属性中的值作为另一个类中对象的属性值时遇到问题。
我想要完成的是,当一个人在公司注册了一项附加服务,并且该人使用自动付款 (EFT/ACH),并且经常性付款金额与每月金额不同时,经常性付款将显示金额。但是,如果客户未使用 EFT/ACH,则显示的付款将是他们选择的任何模式(每月、每季度、每年),或者默认为每月。
我的服务返回以下 JSON:
{
"response": [
{
"accountNumber": "12345678",
"currentMode": "MONTHLY",
"monthlyPayment": 51.00,
"quarterlyPayment": 148.00,
"annualPayment": 561.00,
"recurringAchPayment": 48.40,
"paymentMethod": "EFT/ACH",
"additionalService": [
"accountNumber": "12345678",
"addlServiceCode": "X01888444",
"monthlyPayment": 15.00,
"quartPayment": 43.60,
"annualPayment": 165.00,
"recurringPayment": 14.20
]
}
]
}
我有以下包装器(类)
public class AccountServicesWrapper {
public class Response {
public String accountNumber{get;set;}
public String currentMode{
get{
return String.isBlank(currentMode) ? 'monthly' : currentMode;
}
set;
}
public String monthlyPayment{
get{
return StringUtils.isNotBlank(monthlyPayment) ? StringUtils.formatCurrency(monthlyPayment) : monthlyPayment;
}
set;
}
(quarterlyPayment, annualPayment, and recurringAchPayment are the same)
public List<AdditionalService> additionalService{get;set;}
}
public List<Response> response{get;set;}
public class AdditionalService {
public String monthlyPayment (same as monthlyPayment above, quartPayment, annualPayment, recurringPayment also the same)
public String currentMode{get;set;}
public String paymentMethod{get;set;}
public String payment{
get {
if (payment!= null) {
return payment;
} else if (currentMode != null) {
if (paymentMethod == 'EFT/ACH' && 'monthly' == currentMode.toLowerCase()) {
payment = recurringPayment;
} else if ('monthly' == currentMode.toLowerCase()) {
payment = monthlyPayment;
} else if (repeat with quartPayment & annualPayment)
} else {
payment = monthlyPayment;
}
} else {
payment = monthlyPayment;
}
}
return payment;
}
}
}
AdditionalService 中的“付款”是屏幕上显示的内容。目前的问题是,支付时屏幕显示的是 15.00 而不是 14.20。那是因为 currentMode 和 paymentMethod 被设置为空。
如您所见,我正在尝试使用 currentMode 和 paymentMethod 来确定是显示 recurringPayment 金额还是每月/每季度/每年的付款金额。问题是服务没有在 AdditionalService 对象中返回 currentMode 或 paymentMethod。将这些添加到服务中不是一个选项 - 我无法控制。所以我必须以某种方式将值从 Response 类传递给 AdditionalService 类。
我尝试做'return Response.currentMode'和'return Response.get(0).currentMode',但这些都不起作用。
谁能告诉我我需要做什么?
我将 Java 包括在内,因为 Apex 基于 Java 6,所以我想也许 Java 人可能会有答案。
解决方案
推荐阅读
- html - 如何在 CSS 中控制图像在 div/ 中的位置?
- laravel - 当我切换另一种语言时,redirect()->back() 不起作用
- angularjs - Ionic 4 - ion-button 没有设置我的 Ionic 按钮的样式
- c# - 创建 CSV 文件会生成损坏的数据
- swift - 将数据从firebase加载到标签?
- c# - 为什么 Azure 函数会发送永无止境的 HTTP 请求?
- excel - 部分保护工作簿(并允许宏输入受保护的单元格)
- google-cloud-platform - 谷歌云平台 LAMP 设置 Laravel 5.4
- python - Python 请求模块挂在套接字连接上,但 cURL 有效
- polymer - Polymer init 在“正在运行的生成器”上停止(polymer-cli 1.8.0,Polymer 3.0)