자바 클래스 상용 방법 분석

11473 단어 소스 코드 분석
Class 클래스 는 자바 에서 클래스 정 보 를 저장 하 는 인 스 턴 스 입 니 다.그 안에 각종 반사 방법 이 있 는데 이미 가지 고 있 는 정 보 를 파악 하고 그것 을 익히 면 우리 의 일상적인 반사 프로 그래 밍 에 도움 이 된다.
Class 는 일반적인 유형 입 니 다.
public final class Class<T> implements java.io.Serializable,
                              GenericDeclaration,
                              Type,
                              AnnotatedElement {

Class 는 하나의 개인 적 인 단일 인삼 구조 함수, final 수식 ClassLoader 만 있 습 니 다.jvm 만 Class 대상 을 만 들 수 있 습 니 다.
    private Class(ClassLoader loader) {
        classLoader = loader;
    }

    ClassLoader getClassLoader0() { return classLoader; }
    private final ClassLoader classLoader;

toString 은 Class 의 형식 (인터페이스 또는 클래스) 과 이름 을 되 돌려 줍 니 다.isInterface 는 원생 방법 을 호출 하여 class 정보 필드 에 따라 유형 을 판단 합 니 다.

    public String toString() {
        return (isInterface() ? "interface " : (isPrimitive() ? "" : "class "))
            + getName();
    }

  public native boolean isInterface();

    public native boolean isPrimitive();

모든 수정자 가 Public 의 클래스 나 인터페이스 인 방법 을 되 돌려 줍 니 다. 부모 클래스, 부모 인 터 페 이 스 를 포함 합 니 다.여러 방법 이 같은 방법의 이름과 입 참 을 포함 하고 있다 면 모두 돌아 올 것 이다.현재 classLoader 가 이 class 와 계승 시스템 이 아니라면 거부 합 니 다.

    @CallerSensitive
    public Method[] getMethods() throws SecurityException {
        checkMemberAccess(Member.PUBLIC, Reflection.getCallerClass(), true);
        return copyMethods(privateGetPublicMethods());
    }


getMethods 와 달리 Public 수식 방법 뿐만 아니 라 proctected, default (package), private 도 되 돌려 줍 니 다.그러나 상속 은 포함 되 지 않 는 다. 즉, 모두 자신 이 성명 한 부분 이다.
    @CallerSensitive
    public Method[] getDeclaredMethods() throws SecurityException {
        checkMemberAccess(Member.DECLARED, Reflection.getCallerClass(), true);
        return copyMethods(privateGetDeclaredMethods(false));
    }

getDeclared Methods 에서 지정 한 인삼 목록 에 들 어 가 는 방법 을 선택 하 십시오.

    @CallerSensitive
    public Method getDeclaredMethod(String name, Class<?>... parameterTypes)
        throws NoSuchMethodException, SecurityException {
        checkMemberAccess(Member.DECLARED, Reflection.getCallerClass(), true);
        Method method = searchMethods(privateGetDeclaredMethods(false), name, parameterTypes);
        if (method == null) {
            throw new NoSuchMethodException(getName() + "." + name + argumentTypesToString(parameterTypes));
        }
        return method;
    }


class 는 자바. lang. Enum 또는 부모 클래스 가 자바. lang. Enum 으로 밝 혀 졌 습 니 다.
    public boolean isEnum() {
    
        return (this.getModifiers() & ENUM) != 0 &&
        this.getSuperclass() == java.lang.Enum.class;
    }

좋은 웹페이지 즐겨찾기