[Java] Class<T>

类 Class

类 Class<T>
T:Class对象建模的类的类型
除了类使用Class类描述外,一个类中的构造函数、成员变量和一般函数,都是一种事物,java中都会使用一个类描述:
  构造函数:Constructor类;
  成员变量:Field类;
  一般函数:Method类;

获取Class对象

第一种方式:通过对象的getClass函数获取
.getClass()
第二种方式:通过类型的静态成员变量class获取
.class
第三种方式:使用Class类的静态函数,通过表示某种类型的字符串获取
Class.forName("java.lang.String");//全路径

Class对象的使用

获取和调用构造函数
getConstructor() //获得指定的公共构造方法
getConstructors() //返回所有公共构造方法
getDeclaredConstructor() //获得指定的构造方法
getDeclaredConstructors() //返回所有构造方法
使用反射破坏单例
/*
1.获取类
2.获取构造函数
3.修改私有函数的访问限制
4使用此构造函数创建对象
*/
  Class clazz = Single.class;
  Constructor c = clazz.getDeclaredConstructor();
  c.setAccessible(true);
  Single s = (Single)c.newInstance();
预防 使用反射破坏单例
/*
在构造函数中判断此类的对象是否存在
*/
public class Single{
  private Single(){ 
     if(s!=NUll){
    //对象已存在
    } }
  //内部创建对象s
  private static Single s = new Single();
  //拿到s
  public static Single getInstance(){
  return s
  }
}
posted @ 2022-12-10 19:37  NetUSA  阅读(195)  评论(0)    收藏  举报