如何防止方法在Java中被覆盖

布尔科

我有这个代码。Whis正在搜索excel csv并创建带有缺少字幕的电影的.txt文件。一部电影可以有一个或两个或三个或四个字幕。在excel中,每种语言均以Y或N表示。它正在为一种语言(INDO)工作。我在excel和此处添加了其他语言(GBR,SIM,MYS)。

  int INDOSUB = 4;
  int GBRSUB = 5;
  int SIMSUB = 6;
  int MYSSUB = 7;
  int KPPNAME = 1;  
  ...  
  //NEW REQUIREMENT, CHECK PLAYLIST FOR MISSING SUBTITLES
  for(int i=0; i < assets.size(); i++)
  {
      try 
      {

          file = new File(assets.get(i));
          fileReader = new FileReader(file);
          bufferedReader = new BufferedReader(fileReader);
          while((line = bufferedReader.readLine()) != null)
          {

              tmp = line.split(",");
              if(tmp.length > 4)
              {
                 String indosubStatus = tmp[INDOSUB];
                 String gbrsubStatus = tmp[GBRSUB];
                 String simsubStatus = tmp[SIMSUB];
                 String myssubStatus = tmp[MYSSUB];

                 String kppKey = tmp[KPPNAME];

                 if(indosubStatus.equals("N"))
                 {
                    kppSubitleMap.put(kppKey,"NO INDO SUBTITLES");
                    kppWithMissingSub.put(tmp[KPPNAME],"");
                 }

                 if(gbrsubStatus.equals("N"))
                 {
                    kppSubitleMap.put(kppKey,"NO GBR SUBTITLES");
                    kppWithMissingSub.put(tmp[KPPNAME],"");
                 }

                 if(simsubStatus.equals("N"))
                 {
                    kppSubitleMap.put(kppKey,"NO SIM SUBTITLES");
                    kppWithMissingSub.put(tmp[KPPNAME],"");
                 }

                 if(myssubStatus.equals("N"))
                 {
                    kppSubitleMap.put(kppKey,"NO MYS SUBTITLES");
                    kppWithMissingSub.put(tmp[KPPNAME],"");
                 }                                     

              }

           }

      }
      catch(IOException ex)
      {
          System.out.println(ex.toString());
      }             
  }

当它运行时,仅显示此内容。而且我确定KPP_Heartless也没有GBR和SIM字幕。但这仅显示最后一个。因此,它似乎超越了以前的记录。

KPP_HEARTLESS_19 - NO MYS SUBTITLES 

DATE/TIME: 1/11/2017 - 23:45:09:20
DATE/TIME: 1/12/2017 - 04:45:07:21
DATE/TIME: 1/12/2017 - 12:30:08:20
DATE/TIME: 1/12/2017 - 17:30:04:19


KPP_LISTEN_07 - NO INDO SUBTITLES 

DATE/TIME: 1/12/2017 - 03:30:11:24
DATE/TIME: 1/12/2017 - 07:30:13:13
DATE/TIME: 1/12/2017 - 15:00:10:10


KPP_LISTEN_08 - NO INDO SUBTITLES 

DATE/TIME: 1/12/2017 - 20:00:10:05


KPP_HEARTLESS_20 - NO MYS SUBTITLES 

DATE/TIME: 1/12/2017 - 23:45:09:19

有人知道如何防止它被覆盖吗?非常感谢你。

大卫xxx

它与覆盖方法无关。

问题来了,当你写的时候:

kppSubitleMap.put(kppKey,"NO SIM SUBTITLES");
kppWithMissingSub.put(tmp[KPPNAME],"");

您将覆盖与键关联的值。

1)如果要在地图中包含多个值,则可以使用“列表”或“集合”作为值。例如:Map<String, List<String>>

这是一个示例,您应该对kppSubitleMap地图执行什么操作,但问题与相同kppWithMissingSub

if(gbrsubStatus.equals("N")){
      List<String> values = kppSubitleMap.get(kppKey);
      if (values = null){
          values = new ArrayList<String>();
      }
      values.add("NO GBR SUBTITLES");
      kppSubitleMap.put(kppKey, values);
     ...
  }

样板代码应以实用程序方法执行,以避免在每个if块中重复您自己

public List<String> getOrCreateList(Map<String,List<String>> map, String key){
      List<String> values = map.get(kppKey);
      if (values = null){
          values = new ArrayList<String>();
      }
    return values;
}

2)如果您只想连接信息,则可以执行以下操作:

String value = kppSubitleMap.get(kppKey);
if (value==null){
  value = "";
}
value += "NO GBR SUBTITLES");
kppSubitleMap.put(kppKey, value );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何防止类在 Ruby 中被覆盖?

来自分类Dev

如何防止标签在amchart中被覆盖?

来自分类Dev

如何防止特定方法被覆盖?

来自分类Dev

如何在python中锁定方法(防止被覆盖)?

来自分类Dev

如何防止UserControl的内容被覆盖?

来自分类Dev

如何防止对象属性被覆盖

来自分类Dev

如何防止数据被覆盖?Matlab的

来自分类Dev

如何防止记录对象被覆盖

来自分类Dev

如何防止 HTTP_REFERER 被覆盖

来自分类Dev

硬编码方法,仅在超类中被覆盖

来自分类Dev

协议方法是否意味着在 Swift 中被覆盖?

来自分类Dev

变量在 C 中被覆盖

来自分类Dev

有没有一种方法可以确定某个方法是否已在Java类中被覆盖

来自分类Dev

封闭变量在循环中被覆盖

来自分类Dev

反应setState在.map()中被覆盖

来自分类Dev

C ++指针在for循环中被覆盖

来自分类Dev

浮点数在Chrome中被覆盖

来自分类Dev

'flex' CSS 在 Woocommerce 中被覆盖

来自分类Dev

PHP变量在if语句中被覆盖

来自分类常见问题

如何防止“ window.location.replace()”被覆盖?

来自分类Dev

调用同一活动时如何防止分数被覆盖

来自分类Dev

如何防止Docker Hub上的Docker映像被覆盖?

来自分类Dev

防止Excel文档被覆盖

来自分类Dev

如果Viewgroups的dispatchDraw方法在android中被覆盖,则ImageViews是不可见的

来自分类Dev

实例的Java静态变量是否在另一个实例中被覆盖?

来自分类Dev

哪个方法被覆盖?

来自分类Dev

我想调用父类方法,该方法在Python中通过子类对象在子类中被覆盖

来自分类Dev

Sublime Text 2命令Ctrl + Shift + /在ubuntu中被覆盖

来自分类Dev

为什么我的!important样式属性在Chrome中被覆盖?

Related 相关文章

热门标签

归档