Java ClassLoader setPackageAssertionStatus() 方法



描述

Java ClassLoader setPackageAssertionStatus() 方法设置命名包的包默认断言状态。包默认断言状态决定了未来初始化且属于命名包或其任何“子包”的类的断言状态。

命名为 p 的包的子包是任何名称以“p.”开头的包。例如,javax.swing.textjavax.swing 的子包,java.xmljava.lang.reflect 都是 java 的子包。

声明

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

public void setPackageAssertionStatus(String packageName, boolean enabled)

参数

  • packageName − 这是要设置其包默认断言状态的包的名称。空值表示当前的“未命名”包。

  • enabled − 如果此类加载器加载的且属于命名包或其任何子包的类默认情况下启用断言,则将其设置为 true;如果默认情况下禁用断言,则将其设置为 false。

返回值

此方法不返回值。

异常

将类加载器的包级别类的断言状态设置为 True 的示例

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

package com.tutorialspoint;

public class ClassLoaderDemo {

   public static void main(String[] args) throws Exception {
     
      Class cls = Class.forName("com.tutorialspoint.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 default assertion status for this class loader
      cLoader.setPackageAssertionStatus("java.lang", true); 
   }
} 

输出

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

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

将类加载器的包级别类的断言状态设置为 False 的示例

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

package com.tutorialspoint;

public class ClassLoaderDemo {

   public static void main(String[] args) throws Exception {
     
      Class cls = Class.forName("com.tutorialspoint.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 default assertion status for this class loader
      cLoader.setPackageAssertionStatus("java.lang", false); 
   }
} 

输出

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

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