小编Pat*_*ski的帖子

具有强制转换的通用基元类型

我的Java代码有问题.我想通过使用泛型类型来使我的方法具有通用性.用代码解释它更容易:

public interface Destroyable {

    void destroy();

    default void destroyArray(byte[] array) {
        Arrays.fill(array, (byte)0);
    }

    default void destroyArray(char[] array) {
        Arrays.fill(array, (char)0);
    }

}
Run Code Online (Sandbox Code Playgroud)

关键是,我希望我的默认方法destroyArray可以使用任何类型,如下所示:

public interface Destroyable {

    void destroy();

    default <E> void destroyArray(Class<E>[] array) {
        Arrays.fill(array, (E)0);
    }

}
Run Code Online (Sandbox Code Playgroud)

它给了我错误:

不可转换的类型; 无法将'int'强制转换为'E'

有没有简单的解决方案来实现这一目标?

java generics casting

4
推荐指数
1
解决办法
351
查看次数

标签 统计

casting ×1

generics ×1

java ×1