- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试将接口(interface)的实现强制转换为接口(interface)时遇到意外错误(“不可转换类型”)。
我得到以下界面
public interface IAbc {...}
以及另一个类中的以下方法
public class SomeClass {
public doSomething(Iterable<IAbc> abcs) {...}
}
我编写了以下类(class)
public class MyAbc implements IAbc {...}
我在其他地方有一个类似的方法
public class MyClass {
public Iterable<MyAbc> getMyAbcs() {...}
}
我希望我可以将它们很好地链接起来,如下所示:
public void doSomethingWithThings(SomeClass sc, MyClass mc) {
sc.doSomething(mc.getMyAbcs());
}
但是 NetBeans 给出以下错误:
error: inconvertible types
sc.doSomething(mc.getMyAbcs());
required: Iterable
found: Iterable
我尝试类型转换,但是 Iterable<IAbc> abc = (Iterable<IAbc>)mc.getMyAbcs();
导致同样的错误。
如何将接口(interface)的 Iterable 实现传递给需要接口(interface) Iterable 的方法?
最佳答案
Iterable<MyAbc>
是不是 Iterable<IAbc>
,尽管 MyAbc
是 IAbc
.
尝试使用通配符,如下所示:
public doSomething(Iterable<? extends IAbc> abcs) {...}
这与数组相反,数组:MyAbc[]
是 Iabc[]
这是一个很好的教程,可了解更多信息 http://docs.oracle.com/javase/tutorial/extra/generics/wildcards.html
关于java - 使用接口(interface)实现时为 "Inconvertible types",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15228169/
还有其他几个 SO 问题谈论泛型编译 OK w/Eclipse 的编译器而不是 javac(即 Java: Generics handled differenlty in Eclipse and ja
这段代码有什么问题 int numOfPrimes=pf.FindNumPrimes(10000); Double frequency=((Double)numOfPrimes)/10000d; 说
这段代码有什么问题? int amount= (int) amountSpnr.getValue(); // 1 float total = (float) productData[3]*amo
我在尝试将接口(interface)的实现强制转换为接口(interface)时遇到意外错误(“不可转换类型”)。 我得到以下界面 public interface IAbc {...} 以及另一个类
所以我想知道 Java 在什么情况下抛出 ClassCastException 以及什么时候是“不可转换类型”编译错误。我想这与接口(interface)有关。 我的意思是对于接口(interface
我目前遇到一个奇怪的问题,试图同时使用 v4 和 v7(actionbar)兼容库。 假设我有自己的 Activity 类,它一方面扩展了 ActionBarActivity,另一方面扩展了一个 Fr
我有一些使用泛型的 Guice 绑定(bind)代码,这些代码可以在 Eclipse 的编译器中正常编译和运行,但不能在 Java(命令行)编译器中正常运行。我升级到最新的 (1.7.0_01) Ja
我有一个无法解决的奇怪错误。错误是:不可转换类型“int”和“TextWatcher”的对象之间的“equals()”。这是我的代码: if( textWatcher_ans.equals(R.str
我是一名优秀的程序员,十分优秀!