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

我正在尝试将下面的 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);

      }

   }

}


收到一只叮咚
浏览 135回答 2
2回答

一只斗牛犬

你可以用cp.setPreferenceValue(cp.getPreferenceValue().equals("Y"));类似于JS。如果首选项值需要一个字符串,您可以将布尔值转换为字符串,如下所示:String.valueOf(cp.getPreferenceValue().equals("Y"))此外,为了使.equals比较空安全(getPreferenceValue()可能返回空值),您可能应该去"Y".equals(cp.getPreferenceValue())如果前一个preferenceValue为空,它将返回 false&nbsp;。所以总而言之cp.setPreferenceValue(String.valueOf("Y".equals(cp.getPreferenceValue())));

胡子哥哥

您可以将代码简化为以下for(CompanyPreference cp : companyPreferences) {&nbsp; &nbsp;if(cp.getPreferenceType().equals("Y_N")) {&nbsp; &nbsp; &nbsp; cp.setPreferenceValue(cp.getPreferenceValue().equals("Y"));&nbsp; &nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java