2

オブジェクトの配列を複製しようとしているときに、配列が完全にいっぱいではない場合にエラーが発生します。リストがいっぱいの場合は、すべて問題なく動作します。

これは私のコードです:

    public Object clone() throws CloneNotSupportedException  {
        EmployeeList listBackup = new EmployeeList();
        for (Employee employeeObj : listEmployee){
             listBackup.add( (Employee) employeeObj.clone() );  
        }
        return listBackup;
    }

配列の要素がnullの場合、このコードを書き直す他の方法はありますか?

4

2 に答える 2

1

null チェックを行います。

 for (Employee employeeObj : listEmployee){
   if (employeeObj != null)
     listBackup.add( (Employee) employeeObj.clone());  
 }

breakまたは、null 値が見つかったらすぐにループしたい場合:

for (Employee employeeObj : listEmployee){
  if (employeeObj == null)
    break;
  listBackup.add( (Employee) employeeObj.clone());  
}

nullまたは、参照に出くわしたらすぐに戻ってください

for (Employee employeeObj : listEmployee){
      if (employeeObj == null)
        return listBackup;
      listBackup.add( (Employee) employeeObj.clone());  
    }

もちろん、可能であれば、最初から配列/リストに null 値が含まれないようにしてください。@StephenC が指摘したように、これが実際の配列である場合は、それを複製できます。ただし、これは、割り当ての仕様、他のコードの実装、および教授が許可する内容によって異なります。

于 2013-02-16T02:33:28.040 に答える
0

あなたが A--C の答えを理解したかどうか確信が持てません。彼/彼はあなたに 2 つの別々の解決策を与えました。彼/彼が与えた最初の解決策は、あなたの質問に正確に答えます:)

于 2013-02-16T02:59:07.967 に答える