没有反射的通用数组

时间:2019-01-01 07:51:33

标签: java java-8

我已经阅读了一些答案,在此之后,我知道创建通用数组的一种技术是使用反射,但是我如何编写下面的通用方法来创建数组呢?这有潜在危险吗?

    //To take screenshot
    Screenshot file = ((ITakesScreenshot)driver).GetScreenshot();
    //To save screenshot
    file.SaveAsFile(parentDirName + "\\Screenshots\\" + " - " + SSName + ".png", ScreenshotImageFormat.Png);
    //To log screenshot in Report
    testlog.Info("Details of " + SSName, MediaEntityBuilder.CreateScreenCaptureFromPath(parentDirName + "\\Screenshots\\" + " - " + SSName + ".png").Build());

2 个答案:

答案 0 :(得分:3)

它根本不起作用。

编译器将允许您编写:

String[] sarr = new YourClass().getArray(10,String.class);

但是在运行时,您会得到一个例外:

  

java.lang.ClassCastException:[Ljava.lang.Object;无法转换为[Ljava.lang.String;

答案 1 :(得分:0)

数组和泛型是来自Java的两个不同时代的概念,它们并不是为混合而设计的。如果要使用类型安全的泛型,为什么不使用ArrayList而不是数组?