Class中的getClasses與getDeclaredClasses方法作用於區別


getClasses和getDeclaredClasses的區別:

getClasses得到該類及其父類所有的public的內部類。

getDeclaredClasses得到該類所有的內部類,除去父類的。

public class SpiMain {


    private class SpiMainPrivate {
    }

    public class SpiMainPublic {
    }
}


public class Main extends SpiMain{


    private class MainPrivate {
    }

    public class MainPublic {
    }
}

運行如下代碼:
 System.out.println(Arrays.toString(Main.class.getClasses()));
 System.out.println(Arrays.toString(Main.class.getDeclaredClasses()));

  

輸出:

[class anno.Main$MainPublic, class com.javartisan.spi.SpiMain$SpiMainPublic]
[class anno.Main$MainPrivate, class anno.Main$MainPublic]

 

 

對於注解

import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;


@Retention(RetentionPolicy.RUNTIME) 
@Inherited
public @interface Component {
}


import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;


@Component
@Retention(RetentionPolicy.RUNTIME)
public @interface Service {
}

  

 

java.lang.Class#getDeclaredAnnotation方法可以獲取Service注解之上的Comnponent注解

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM