编写数组声明字符串

Tia*_*oso 0 java generics

我正在研究一种编写java文件的工具.在给定的点上,我必须编写一个数组声明.我已经实现了以下方法:

  public static String arrayToCode(Long[] arr, String arrName) {
    StringBuilder sb = new StringBuilder();

    sb.append("Long[]" + arrName + " = { ");
    for (int i = 0; i < arr.length; i++) {
      sb.append(arr[i] + "L, ");
    }
    sb.append("};");

    return sb.toString();
  }

  public static String arrayToCode(String[] arr, String arrName) {
    StringBuilder sb = new StringBuilder();

    sb.append("String[]" + arrName + " = { ");
    for (int i = 0; i < arr.length; i++) {
      sb.append(arr[i] + "L, ");
    }
    sb.append("};");

    return sb.toString();
  }

  public static String arrayToCode(Double[] arr, String arrName) {
    StringBuilder sb = new StringBuilder();

    sb.append("Double[]" + arrName + " = { ");
    for (int i = 0; i < arr.length; i++) {
      sb.append(arr[i] + "L, ");
    }
    sb.append("};");

    return sb.toString();
  }
Run Code Online (Sandbox Code Playgroud)

不过,我想提出的各种阵列的单一和通用的方法,事情是,我不知道如何与泛型处理类型,即我怎么会知道这是一个Long,String还是Double阵列?

Bri*_*ent 6

public static String arrayToCode(Object[] arr, String arrName) {
   StringBuilder sb = new StringBuilder();

    sb.append(arr.getClass().getComponentType() + "[]" + arrName + " = { ");
    for (int i = 0; i < arr.length; i++) {
      sb.append(arr[i] + "L, ");
    }
    sb.append("};");

    return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)