ClassLoader.setPackageAssertionStatus() 方法

描述

java.lang.ClassLoader.setPackageAssertionStatus() 方法为命名包设置包默认断言状态。 包默认断言状态决定了将来初始化的属于指定包或其任何"子包"的类的断言状态。

名为 p 的包的子包是名称以"p."开头的任何包。 比如javax.swing.textjavax.swing的子包,java.xml和java.lang.reflect都是java的子包。


声明

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

public void setPackageAssertionStatus(String packageName, boolean enabled)

参数

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

  • enabled − 如果由这个类加载器加载并属于命名包或其任何子包的类默认启用断言,则设置为 true,如果默认禁用断言,则设置为 false。


返回值

此方法不返回任何值。


异常

NA


示例

下面的例子展示了 java.lang.ClassLoader.setPackageAssertionStatus() 方法的使用。

package com.tutorialspoint;

import java.lang.*;

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 default assertion status for this class loader
      cLoader.setPackageAssertionStatus("java.lang", true); 
   }
} 

让我们编译并运行上面的程序,这将产生下面的结果 −

class sun.misc.Launcher$AppClassLoader
sun.misc.Launcher$ExtClassLoader@35ce36