Java ClassLoader setPackageAssertionStatus() Method



Description

The Java ClassLoader setPackageAssertionStatus() method Sets the package default assertion status for the named package. The package default assertion status determines the assertion status for classes initialized in the future that belong to the named package or any of its "subpackages".

A subpackage of a package named p is any package whose name begins with "p.". For example, javax.swing.text is a subpackage of javax.swing, and both java.xml and java.lang.reflect are subpackages of java.

Declaration

Following is the declaration for java.lang.ClassLoader.setPackageAssertionStatus() method

public void setPackageAssertionStatus(String packageName, boolean enabled)

Parameters

  • packageName − This is the name of the package whose package default assertion status is to be set. A null value indicates the unnamed package that is "current".

  • enabled − Set it true if classes loaded by this classloader and belonging to the named package or any of its subpackages will have assertions enabled by default, false if they will have assertions disabled by default.

Return Value

This method does not return any value.

Exception

NA

Setting Assertion Status of Package Level Classes of a ClassLoader as True Example

The following example shows the usage of java.lang.ClassLoader.setPackageAssertionStatus() method. In this program, we've retrieved class of a ClassLoaderDemo. Then using getClassLoader(), we get the required ClassLoader and printed class loader class using getClass() and printed the parent class loader using getParent() method. Now using setPackageAssertionStatus() method, we've set package assertion status settings associated with the class loader as 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); 
   }
} 

Output

Let us compile and run the above program, this will produce the following result −

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

Setting Assertion Status of Package Level Classes of a ClassLoader as False Example

The following example shows the usage of java.lang.ClassLoader.setPackageAssertionStatus() method. In this program, we've retrieved class of a ClassLoaderDemo. Then using getClassLoader(), we get the required ClassLoader and printed class loader class using getClass() and printed the parent class loader using getParent() method. Now using setPackageAssertionStatus() method, we've set package assertion status settings associated with the class loader as 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); 
   }
} 

Output

Let us compile and run the above program, this will produce the following result −

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