小编vda*_*888的帖子

带有ArrayList的Java Generic <?扩展A>添加元素

我有课A,B,CD那里B延伸A,C扩展AD延伸A.

我有以下ArrayList几个,其中包含一些元素:

ArrayList<B> b;
ArrayList<? extends A> mix = b;
Run Code Online (Sandbox Code Playgroud)

我打算让变量mix包含类型的元素B,CD.我试图类型的元素加入Cmix这样的:

mix.add(anElementOfTypeC);
Run Code Online (Sandbox Code Playgroud)

但IDE不允许我这样做,它说:

通过调用转换的方法,无法将anElementOfTypeC转换为CAP#1,其中CAP#1是一个新的类型变量:CAP#1从捕获?延伸A.

我使用<? extends A>得当吗?我该如何解决这个问题?

java generics arraylist

27
推荐指数
3
解决办法
3万
查看次数

JDK 9 不安全导入 sun.misc.Launcher

我最近升级到 JDK 9 并且 Eclipse 抱怨sun.misc.Launcher无法导入。好像sun.misc.Launcher是不安全的。我正在寻找替代方法来替换我项目中的这行代码。

final URL url = Launcher.class.getResource("/");
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

更新:上述代码块的更完整版本是:

final URL url = Launcher.class.getResource("/");
final File fs = new File(url.toURI());
for (File f : fs.listFiles()) {
     System.out.println(f.getAbsolutePath());
}
Run Code Online (Sandbox Code Playgroud)

这是src在 IDE 中启动程序时打印文件夹中的所有文件。

java getresource java-9

6
推荐指数
1
解决办法
1260
查看次数

标签 统计

java ×2

arraylist ×1

generics ×1

getresource ×1

java-9 ×1