为什么这个可以编译通过?
A中使用了没有任何泛型参数的B,在Java中也能够编译通过。这是怎么回事呢?
interface B<T>
{
public T Foo(T value);
}
public class A
{
public B What()
{
return null;
}
public void Foo()
{
B x = What();
x.Foo(123);
}
}
这是为了与早期版本的J2SE 5.0 Java兼容而设置的。您应该会收到一个rawtypes警告(请注意编译器警告)。
B
的一个raw
类型。就像... List list = new ArrayList(); // defined as: public interface List<E>
这是完全有效的,但不建议使用。
list
可以添加什么类型的对象?所有东西都被视为 Object
吗? - ReactgularList<String>
分配给List
,但不能将List<String>
分配给List<Object>
。 - newacct