当前位置: 首页 > 面试题库 >

A和有什么不一样和A ?

储阳曦
2023-03-14
问题内容

我是一名新的Java学习者。最近,我在阅读泛型编程,并对此感到困惑。

A<T extends B> and A<? extends B>

问题答案:

首先,这些是在不同上下文中使用的完全不同的构造。

A<T extends B> 是通用类型声明的一部分,例如

public class A<T extends B> { ... }

A使用类型参数声明泛型类型T,并引入界限T,因此T必须是的子类型B

A<? extends B> 是带通配符的参数化类型,可以作为普通类型用于变量和方法声明等中:

A<? extends B> a = ...;

public void foo(A<? extends B> a) { ... }

变量声明诸如A<? extends B> a装置类型的该aA参数化与一些亚型B

例如,给出此声明

List<? extends Number> l;

您可以:

  • List的某些子类型分配Numberl

    l = new ArrayList<Integer>();
    
  • Number从该列表中获取类型的对象

    Number n = l.get(0);
    

但是,l由于您不知道列表的实际类型参数,因此无法将任何内容放入列表中:

Double d = ...;
l.add(d); // Won't compile


 类似资料:
  • 问题内容: 不会初始化内存,只会将其清零。它返回一个指向新分配的零值的指针。 仅创建切片,地图和通道,并将其初始化返回。 在这种情况下,“初始化”是什么意思?new和make之间还有什么其他区别? 问题答案: 如制作切片,地图和通道中所述: 内置函数make需要一个type ,该类型 必须是slice,map或channel type ,还可以选择后面是特定于类型的表达式列表。 它返回类型的值(不

  • 问题内容: 关于 Java泛型, 我有一个非常基本的问题。我想这两个和是同质的。我是对的还是我缺少的基本观念? 问题答案: 泛型类型比较古怪。 表示Number或未知的子类。如果获得这样的值,它将是,但是由于您不知道哪个有效,因此无法给出此类型的值。 区别在于参数和返回值。 在一些地方用来表示类型可以是超级类型。例如 在集合中,此方法表示比较器需要能够比较相同类型或任何超级类型。 这意味着你可以

  • 问题内容: public void push(E element) { if (size == elements.length) { resize(); // doubel of size } elements[size++] = element; } Java中的a 和 a或a–和–a有什么区别 谢谢 问题答案: 或是后缀运算符,表示a的值将在对表达式求值后更改。 或是前缀运算,表示a的值将在对

  • 问题内容: 正如我在标题中提到的 a + = b和a = + b以及a 和 a有什么区别?我有点困惑 问题答案: 相当于 相当于 且两者都增加1。不同之处在于,返回的是增量之前的值,而返回的是增量之后的值。 那是:

  • Java的(“A”)和“A”有什么区别? 为什么下面的两行给出的结果是一样的?它们之间有什么区别吗?

  • 本文向大家介绍python中的del,remove和pop on list和有什么不一样?,包括了python中的del,remove和pop on list和有什么不一样?的使用技巧和注意事项,需要的朋友参考一下 您在程序中编写多少行代码都没有关系。如果要删除或删除从Python列表中的任何元素,你必须考虑的区别删除,删除 和流行 的Python列表,并使用哪一个 remove :删除第一个匹配