美しくオーバーロード

  public void method(final String data1, final String data2) {
    // ...
  }
  
  public void method(final String data1) {
    method(data1, null);
  }

こんなオーバーロードって、よくやる手ですよね。可変引数のような使い方です。
ところで、以下のような場合(「// ...」は全く同じ処理)、美しくオーバーロードする方法は無いもんでしょうか?

  public void method(final List<String[]> data) {
    for(final String[] datum : data) {
      // ...
    }
  }
  
  public void method(final String[][] data) {
    for(final String[] datum : data) {
      // ...
    }
  }

「// ...」部分を private method で抽出するしかないのかなぁ。