黑马程序员技术交流社区
标题:
接口可以直接用来定义变量名吗?
[打印本页]
作者:
H._张_♂
时间:
2014-3-31 18:40
标题:
接口可以直接用来定义变量名吗?
下面的代码中有这样一句代码,
ParameterizedType pType = (ParameterizedType)types[0];
这句代码中的ParameterizedType 是一个接口,为什么可以直接定义pType这个变量?
下面代码也是老师讲的通过反射得到集合泛型中的实际类型。有兴趣可以看看
package com.itheima.day1;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.sql.Date;
import java.util.List;
public class ReflectFX {
public static void main(String[] args) throws Exception {
//通过反射得到一个使用过集合的方法
Method refleMethod = ReflectFX.class.getMethod("applyVector", List.class);
//通过方法的getGenericParameter,Types按照声明顺序返回 Type 对象的数组,这些对象描述了此 Method 对象所表示的方法的形参类型的。法
Type[] types = refleMethod.getGenericParameterTypes();
//ParameterizedType 表示参数化类型,不过明明是接口为什么能使用强制转换?
ParameterizedType pType = (ParameterizedType)types[0];
//getActualTypeArguments() 返回表示此类型实际类型参数的 Type 对象的数组。
System.out.println(pType.getActualTypeArguments()[0]);
}
public static <T> void applyVector(List<Date> v1){
}
}
复制代码
作者:
枫露
时间:
2014-4-1 07:01
不能,ParameterizedType pType = (ParameterizedType)types[0];这里的ParameterizedType 被当做是一个类
使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
与Java的类文件一样,接口文件的文件名必须与接口名相同。
实现接口
接口在定义后,就可以在类中实现该接口。在类中实现接口可以使用关键字implements,其基本格式如下:
[修饰符] class <类名> [extends 父类名] [implements 接口列表]{
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2