简介WildcardType是Type的子接口,用于描述形如“? extends classA” 或 “?super classB”的“泛型参数表达式”。Type[] getUpperBounds()获取泛型表达式上界.根据API的注释提示:现阶段通配符表达式仅仅接受一个上边界或者下边界,这个和定义“范型变量”的时候可以指定多个上边界是不一样。但是API说了,为了保持扩展性,这里返回值类型写成了数
2022-12-06 michael007js 342
简介GenericArrayType是Type的子接口,用于表示“泛型数组”,描述的是形如:A<T>[]或T[]的类型。其实也就是描述ParameterizedType类型以及TypeVariable类型的数组,即形如:classA<T>[][]、T[]等。Type getGenericComponentType()获取“泛型数组”中元素的类型,要注意的是:无论从左向右有几
2022-12-06 michael007js 224
简介GenericDeclaration接口继承了AnnotatedElement接口,是所有“可以声明(定义)范型变量”的实体(如Class,Constructor,Method)的公共接口。也就是说只有实现了这个接口的才能在对应“实体”上声明“范型变量”。所谓范型变量就是<E extends List>或者<E>, 也就是TypeVariable<D extend
2022-12-06 michael007js 201
简介TypeVariable是“类型变量”(或者叫“泛型变量”更准确些)的通用的顶级接口。在泛型编程中会用到“泛型变量”来描述类型,或者说是用来表示泛型。一般用大写字母作为类型变量,比如K、V、E等。说到TypeVariable<D extends GenericDeclaration>就不得不提起java泛型中另一个比较重要的接口对象,GenericDeclaration接口对象。该
2022-12-06 michael007js 242
简介ParameterizedType是Type的子接口,表示一个有参数的类型,例如Collection<T>,Map<K,V>等。但实现上 ParameterizedType并不直接表示Collection<T>和Map<K,V>等,而是表示 Collection<String>和Map<String,String>等这种具
2022-12-06 michael007js 203
泛型出现之前没有泛型的时候,只有所谓的原始类型。此时,所有的原始类型都通过字节码文件类Class类进行抽象。Class类的一个具体对象就代表一个指定的原始类型。泛型出现之后泛型出现之后,扩充了数据类型。从只有原始类型扩充了参数化类型(ParameterizedType)、类型变量类型(TypeVariable)、泛型限定的参数化类型 (含通配符+通配符限定表达式)(WildcardType)、泛型
2022-12-06 michael007js 150
通常情况下,Server端返回的json数据应该可以一次性完全解析,但是要是遇到server返回的json里又包含json字符串就得自己再手动解析一次了。我们知道json字符串解析成模型类型很简单,但是如果要把json数组字符串解析List对象,应该怎么办呢?举一个实际的例子:[ { "name": "zhaoxa", &quo
2022-12-06 michael007js 1607
这些只是自己测试的一些发现和理解做个记录,如果那里不对还请不吝赐教onDraw()先于dispatchDraw()执行,用于本身控件的绘制,dispatchDraw()用于子控件的绘制onDraw()绘制的内容可能会被子控件覆盖而dispatchDraw()是子控件的绘制,所以是覆盖在onDraw()上的布局:<?xml version="1.0" encoding=&q
2022-12-06 michael007js 197