Java ClassLoader setClassAssertionStatus() 方法



描述

Java ClassLoader setClassAssertionStatus() 方法设置此类加载器中命名顶层类的所需断言状态及其包含的任何嵌套类。如果命名类不是顶层类,则此调用不会对任何类的实际断言状态产生任何影响。

声明

以下是java.lang.ClassLoader.setClassAssertionStatus() 方法的声明

public void setClassAssertionStatus(String className, boolean enabled)

参数

  • className − 这是要设置其断言状态的顶层类的完全限定类名。

  • enabled − 如果命名类在初始化时(如果)要启用断言,则将其设置为 true;如果该类要禁用断言,则设置为 false。

返回值

此方法不返回值。

异常

设置类加载器的顶层类的断言状态示例

以下示例演示了 java.lang.ClassLoader.setClassAssertionStatus() 方法的用法。在此程序中,我们检索了 ClassLoaderDemo 的类。然后使用 getClassLoader() 获取所需的 ClassLoader,并使用 getClass() 打印类加载器类,并使用 getParent() 方法打印父类加载器。现在,使用 setClassAssertionStatus() 方法,我们将与类加载器关联的类断言状态设置为 true。

package com.tutorialspoint;

public class ClassLoaderDemo {

   public static void main(String[] args) throws Exception {
     
      Class cls = Class.forName("ClassLoaderDemo");

      // returns the ClassLoader object associated with this Class
      ClassLoader cLoader = cls.getClassLoader();
    
      System.out.println(cLoader.getClass());
    
      // returns the parent ClassLoader
      System.out.println(cLoader.getParent());
  
      // sets the desired assertion status 
      cLoader.setClassAssertionStatus("ClassLoaderDemo", true); 
   }
} 

输出

让我们编译并运行上述程序,这将产生以下结果:

class jdk.internal.loader.ClassLoaders$AppClassLoader
jdk.internal.loader.ClassLoaders$PlatformClassLoader@4517d9a3

重置类加载器的顶层类的断言状态示例

以下示例演示了 java.lang.ClassLoader.setClassAssertionStatus() 方法的用法。在此程序中,我们检索了 ClassLoaderDemo 的类。然后使用 getClassLoader() 获取所需的 ClassLoader,并使用 getClass() 打印类加载器类,并使用 getParent() 方法打印父类加载器。现在,使用 setClassAssertionStatus() 方法,我们将与类加载器关联的类断言状态设置为 false。

package com.tutorialspoint;

public class ClassLoaderDemo {

   public static void main(String[] args) throws Exception {
     
      Class cls = Class.forName("ClassLoaderDemo");

      // returns the ClassLoader object associated with this Class
      ClassLoader cLoader = cls.getClassLoader();
    
      System.out.println(cLoader.getClass());
    
      // returns the parent ClassLoader
      System.out.println(cLoader.getParent());
  
      // sets the desired assertion status 
      cLoader.setClassAssertionStatus("ClassLoaderDemo", false); 
   }
} 

输出

让我们编译并运行上述程序,这将产生以下结果:

class jdk.internal.loader.ClassLoaders$AppClassLoader
jdk.internal.loader.ClassLoaders$PlatformClassLoader@4517d9a3
java_lang_classloader.htm
广告
© . All rights reserved.