为了账号安全,请及时绑定邮箱和手机立即绑定

将 JavaScript for 循环翻译成 Java 并简化

将 JavaScript for 循环翻译成 Java 并简化

收到一只叮咚 2021-12-22 19:26:20
我正在尝试将下面的 JavaScript for 循环转换为 Java for 循环。它的作用是当preferenceType 为'Y_N' 时,将preferenceValue 从'Y' 更改为true,将'N' 更改为false。var array = [  { preferenceCode: 'A1', preferenceType: 'Y_N', preferenceValue: 'Y' },  { preferenceCode: 'A2', preferenceType: 'Y_N', preferenceValue: 'N' },  { preferenceCode: 'A3', preferenceType: 'DATE', preferenceValue: '15/03/2018' },  { preferenceCode: 'A4', preferenceType: 'Y_N', preferenceValue: 'Y' }];for(var i = 0; i < array.length; i++) {   if(array[i].preferenceType === 'Y_N') {      array[i].preferenceValue = (array[i].preferenceValue === 'Y');   }}console.log(array);我试了一下,但我的 Java for 循环看起来庞大且过于复杂(至少是 cp.setPreferenceValue 位)。有没有办法简化它?CompanyPreference[] companyPreferences = returnedPreferencesFromDatabase;           for(CompanyPreference cp : companyPreferences) {   if(cp.getPreferenceType().equals("Y_N")) {      if(cp.getPreferenceValue().equals("Y")) {         cp.setPreferenceValue(true);      } else {         cp.setPreferenceValue(false);      }   }}
查看完整描述

2 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

你可以用

cp.setPreferenceValue(cp.getPreferenceValue().equals("Y"));

类似于JS。如果首选项值需要一个字符串,您可以将布尔值转换为字符串,如下所示:

String.valueOf(cp.getPreferenceValue().equals("Y"))

此外,为了使.equals比较空安全(getPreferenceValue()可能返回空值),您可能应该去

"Y".equals(cp.getPreferenceValue())

如果前一个preferenceValue为空,它将返回 false 。

所以总而言之

cp.setPreferenceValue(String.valueOf("Y".equals(cp.getPreferenceValue())));


查看完整回答
反对 回复 2021-12-22
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

您可以将代码简化为以下


for(CompanyPreference cp : companyPreferences) {

   if(cp.getPreferenceType().equals("Y_N")) {

      cp.setPreferenceValue(cp.getPreferenceValue().equals("Y"));

   }

}


查看完整回答
反对 回复 2021-12-22
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信