2 suwu150 suwu150 于 2016.09.08 23:43 提问

Class<? extends |X|>,这段语句什么意思?

public final Class<?> getClass()
返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
实际结果类型是 Class<? extends |X|>,其中 |X| 表示清除表达式中的静态类型,该表达式调用 getClass。 例如,以下代码片段中不需要强制转换:
Number n = 0;
Class<? extends Number> c = n.getClass();
返回:
表示此对象运行时类的 Class 对象。

Class<? extends |X|>;什么意思??问号代表啥???

1个回答

caozhy
caozhy   Ds   Rxr 2016.09.08 23:58
 表示这是一个泛型方法,返回一个 Class<XXX> 类型,而这个XXX必须是Number类的派生类。
wb_snail
wb_snail 回复suwu150: 当然可以,是泛型的一种扩展,在原来<T>的基础上加了一个边界约束,共有两种,上边界和下边界,分别是<? extends T>表示泛型类必须为T或者其子类 和<? super T>表示泛型类必须是T或者其父类,相比<T>多加了一个约束
接近 2 年之前 回复
suwu150
suwu150 程序中能不能这样使用??这样呢CLass<?>,今天怎么看见过后面这种,一直搞不懂??
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java基础习题(附答案)
一、选择题 1 定义类头时,不可能用到的关键字是( B)。 A) class B)private C)extends D)public 2.下列类定义中,不正确的是(C)。 A) class x { .... } B) class x extends y { .... } C) static class x implements y1,y2 { .... } D) public class x extends Applet { .... } 3.下列类头定义中,错误的是( A)。 A)public x extends y {...} B) public class x extends y {...} C)class x extends y implements y1 {...} D)class x {...} 4.设 A为已定义的类名,下列声明A类的对象a的语句中正确的是( D)。 A) float A a; B) public A a=A( ); C) A a=new int( ); D) static A a=new A( ); 5.设 A为已定义的类名,下列声明A类的对象a的语句中正确的是(A)。 A) public A a=new A( ); B) public A a=A( ); C) A a=new class( ); D) a A; 6.设 X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是(C)。 A) public X x1= new Y( ); B) X x1= X ( ); C) X x1=new X( ); D) int X x1; 7. 设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是(A)。 A) static X x1; B) public X x1=new X(int 123); C) Y x1; D) X x1= X( ); 8.通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现: _______________________________。
Java 多线程:extends Thread Class & implements Runnable Interface
1. extends Thread Class 2. implements Runnable Interface 3. Runnable is more flexible than Thread
<? extends SomeClass>与<T extends SomeClass>的区别
<? extends SomeClass>与<T extends SomeClass>的区别 Java泛型 泛型方法 通配符类型 有限制类型参数
<? extends T> 和 <? super T>分别是什么意思?有什么不同?
首先你很容易误解它为继承于T的所有类的集合,这是大错特错的,相信能看下去你一定见过或用过List吧?为什么我说理解成一个集合是错呢?如果理解成一个集合那为什么不用List来表示?所以不是一个集合,而是T的某一种子类的意思,记住是一种,单一的一种,问题来了,由于连哪一种都不确定,带来了不确定性,所以是不可能通过add()来加入元素。你或许还觉得为什么add(T)不行?因为是T的某种子类,能放入子类的
黑马程序员__JAVA基础加强__高新技术(一)
------------android培训、java培训、java学习型技术博客、期待与您交流! ------------
android中extends 和implements
public class CameraGLSurfaceView extends GLSurfaceView implements GLSurfaceView.Renderer{ private static final String TAG = "main"; Context mContext; OpenGLDraw mOpenGLDrawer = null;
Java Test Nine
 一、选择题(每题1分,共30分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。1.下列语句序列执行后,k 的值是( )。int m=3, n=6, k=0;while( (m++) A) 0 B) 1 C) 2 D) 32.设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( )。A) i = i + 2 B)
public ArrayList(Collection<? extends E> c)中的 ? 和 E 是什么意思
上面那句话是ArrayList ?是“任意类”的意思,extends继承不多说,E是指定类型。 首先,楼上说的不错,是泛型。这是java 1.5以后引入的。 从此以后,定义一个空的ArrayList需要这样,比如我需要一个MyClass的顺序表,则: ArrayList myList = new ArrayList(); 这是因为ArrayList类的声明是public class Array
java中enum的实现enum<E extends java.lang.Enum<E>>
原来E extends java.lang.Enum这个是为了语法顺畅而做的,解决父类和子类协作时,统一语法面使用方法 下面做个标志,方便理解 考虑下面的语法 E extends Foo 首先,这是一个泛型,使用E作为类型参数。 其次,对于E有上界限制,即E必须是Foo的子类。 E被识别为Foo的子类,这个情况相当于把一个子类或者自己当成参数,传入到自身,引起一
RecyclerView的Adapter最佳实战
在使用RecyclerView的时候,发现同事在使用上很原生态。 什么意思呢,原生态大概就是下面这样。public class UserAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private String[] mDataset; public MyAdapter(String[] myDataset)