1.泛型
Java泛型的本质是参数化类型,也就是所操作的数据类型被指定为一个参数。
泛型主要分为泛型类、泛型接口、泛型方法。
1.泛型类
//此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型
//在实例化泛型类时,必须指定T的具体类型
public class Generic<T>{
private T key;
public Generic(T key) {
this.key = key;
}
public T getKey(){
return key;
}
}
实例化泛型类:
Generic<Integer> genericInteger = new Generic<Integer>(123456);
2.泛型接口
public interface Generator<T> {
public T method();
}
实现泛型接口并指定类型:
class GeneratorImpl implements Generator<String> {
@Override
public String method() {
return "hello";
}
}
实现泛型接口并不指定类型:
class GeneratorImpl<T> implements Generator<T>{
@Override
public T method() {
return null;
}
}
3.泛型方法
public static < E > void printArray( E[] inputArray )
{
for ( E element : inputArray ){
System.out.printf( "%s ", element );
}
System.out.println();
}
使用方法:
// 创建不同类型数组:Integer, Double 和 Character
Integer[] intArray = { 1, 2, 3 };
String[] stringArray = { "Hello", "World" };
printArray( intArray );
printArray( stringArray );
2.反射
Java反射允许程序在运行时查询、访问和修改类、接口、字段和方法的信息。反射提供了一种动态地操作类的能力,在很多框架中被广泛使用,例如Spring框架的依赖注入。
Java的反射API提供了一系列的类和接口来操作Class对象。包括:
java.lang.Class:类的对象,提供了方法来获取类的字段、方法、构造函数等。
java.lang.reflect.Field:类的字段属性,提供了访问和修改字段的能力。
java.lang.reflect.Method:类的方法,提供了调用方法的能力。
java.lang.reflect.Constructor:类的构造函数,提供创建对象的能力。
具体各个详细介绍参考Java 反射(Reflection) | 菜鸟教程。
3.注解
注解(Annotation)可以看作是一种特殊的注释,主要用于修饰类、方法或者变量,提供某些信息供程序在编译或者运行时使用。
注解:java定义了一套内置的注解,如@Override等,Spring框架中也有许多注解,后续复习时再一一列举。