5.4 对象包装器与自动装箱
java
package 反射;
import java.util.AbstractList;
import java.util.ArrayList;
public class test {
public static void main(String[] args) {
int a=10;
ArrayList<Integer> xx=new ArrayList<>();
xx.add(a); //自动装箱
int b=xx.get(0);//自动拆箱
}
}
5.5参数数量可变的方法
java
package 反射;
import java.util.AbstractList;
import java.util.ArrayList;
public class test {
public static void main(String[] args) {
m1("aaa");
m1("aaa","nnn");
}
public static void m1(String... aaa)//传若干个 可以表示为数组
{
//比如String a1=aaa[0];
}
}
5.6枚举类
也是一个类 但是限定了对象的个数
所以不能new
枚举的构造方法必须是私有的
java
package 反射;
public enum MMM {
AA(10,"1"),BB(20,"b"),CC(30,"c"),DD(40,"d");
public int age;
public String name;
private MMM(int a,String b)
{
age=a;
name=b;
}
public void m1()
{
}
}
构造器里面若是传参 枚举中的每个对象也得传参
枚举的调用和正常变量没什么区别
java
package 反射;
import java.util.AbstractList;
import java.util.ArrayList;
public class test {
public static void main(String[] args) {
MMM x1=MMM.AA;
MMM x2=MMM.BB;
x1.age=90;
x1.name="xiaoli";
}
}
5.7反射
反射和代理是框架的核心
也是架构师的核心
5.7.1 Class类
获取类信息的三种方式:
对象.getClass()
类.class
Class.forname("类的路径")
java
Employee e;
....
Class cl=e.getClass();
//是将e这个类中的全部的类信息存到cl中
//Class类是用来存储获取到的类信息的