ClassLoader classLoader = Main.class.getClassLoader();和ClassLoader classLoader = getClass().getClassLoader();的区别
时间: 2024-03-31 17:30:26 浏览: 110
Java 类加载机制 ClassLoader Class.forName.pdf
ClassLoader classLoader = Main.class.getClassLoader(); 和 ClassLoader classLoader = getClass().getClassLoader(); 的区别在于获取ClassLoader的方式不同。
1. Main.class.getClassLoader():这种方式是通过类名来获取ClassLoader。在这种情况下,Main是一个具体的类名,表示获取Main类的ClassLoader。这种方式适用于在静态方法中获取ClassLoader,或者在没有实例对象的情况下获取ClassLoader。
2. getClass().getClassLoader():这种方式是通过实例对象来获取ClassLoader。在这种情况下,getClass()返回的是当前对象的运行时类,然后通过运行时类获取ClassLoader。这种方式适用于在实例方法中获取ClassLoader,或者已经有实例对象的情况下获取ClassLoader。
总结:
- Main.class.getClassLoader() 适用于静态方法或者没有实例对象的情况下获取ClassLoader。
- getClass().getClassLoader() 适用于实例方法或者已经有实例对象的情况下获取ClassLoader。
需要注意的是,如果没有自定义的ClassLoader,那么这两种方式获取到的ClassLoader都是系统默认的ClassLoader。
阅读全文