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.