JavaTM 2
Platform
Std.  Ed.  v1. 4.0

java.lang
클래스 Class

java.lang.Object 
  |
  +--java.lang.Class
모든 구현 인터페이스:
Serializable

public final class Class
extends Object
implements Serializable

클래스 Class 의 인스턴스는 실행중의 Java 어플리케이션의 클래스 및 인터페이스를 나타냅니다. (와)과 같이 어느 배열도, 같은 요소형 및 차원수를 가지는 배열에 의해 공유되는 Class 오브젝트로서 리후레크트 되는 클래스에 속합니다. Java 의 원시적형 (boolean,byte,char,short,int,long,float,double)외, 키워드 voidClass 오브젝트로 나타내집니다.

Class 에는 public constructor 은 없습니다. Class 오브젝트는 클래스가 로드 될 때에 Java 가상 머신에 의해, 및 클래스 로더의 defineClass 메소드의 호출에 의해 자동적으로 구축됩니다.

이하의 예에서는 Class 오브젝트를 사용해 오브젝트의 클래스명을 출력합니다.

     void printClassName(Object obj) {
         System.out.println("The class of " + obj +
                            " is " + obj.getClass(). getName());
     }
 

도입된 버젼:
JDK1. 0
관련 항목:
ClassLoader.defineClass(byte[], int, int) , 직렬화 된 형식

메소드의 개요
 boolean desiredAssertionStatus ()
          이 메소드의 호출시에 이 클래스를 초기화하는 경우, 클래스에 할당할 수 있는 선언 스테이터스를 돌려줍니다.
static Class forName (String  className)
          지정된 캐릭터 라인명을 가지는 클래스 또는 인터페이스에 관련지을 수 있던,Class 오브젝트를 돌려줍니다.
static Class forName (String  name, boolean initialize, ClassLoader  loader)
          지정된 클래스 로더를 사용해, 지정된 캐릭터 라인명을 가지는 클래스 또는 인터페이스에 관련지을 수 있었던 Class 오브젝트를 돌려줍니다.
 Class [] getClasses ()
          이 Class 오브젝트가 나타내는 클래스의 멤버인, 모든 public 클래스 및 인터페이스를 나타내는 Class 오브젝트를 저장하고 있는 배열을 돌려줍니다.
 ClassLoader getClassLoader ()
          클래스의 클래스 로더를 돌려줍니다.
 Class getComponentType ()
          배열의 컴퍼넌트형을 나타내는 Class 를 돌려줍니다.
 Constructor getConstructor (Class [] parameterTypes)
          이 Class 오브젝트가 나타내는 클래스의 지정된 public constructor를 리후레크트 하는 Constructor 오브젝트를 돌려줍니다.
 Constructor [] getConstructors ()
          이 Class 오브젝트가 나타내는 클래스의 모든 public constructor를 리후레크트 하는 Constructor 오브젝트를 저장하고 있는 배열을 돌려줍니다.
 Class [] getDeclaredClasses ()
          이 Class 오브젝트가 나타내는 클래스의 멤버로서 선언된, 모든 클래스 및 인터페이스를 리후레크트 하는 Class 오브젝트의 배열을 돌려줍니다.
 Constructor getDeclaredConstructor (Class [] parameterTypes)
          이 Class 오브젝트가 나타내는 클래스 또는 인터페이스의 지정된 constructor를 리후레크트 하는 Constructor 오브젝트를 돌려줍니다.
 Constructor [] getDeclaredConstructors ()
          이 Class 오브젝트가 나타내는 클래스가 선언한 모든 constructor를 리후레크트 하는 Constructor 오브젝트의 배열을 돌려줍니다.
 Field getDeclaredField (String  name)
          이 Class 오브젝트가 나타내는 클래스 또는 인터페이스의 지정된 선언 필드를 리후레크트 하는 Field 오브젝트를 돌려줍니다.
 Field [] getDeclaredFields ()
          이 Class 오브젝트가 나타내는 클래스 또는 인터페이스가 선언한, 모든 필드를 리후레크트 하는 Field 오브젝트의 배열을 돌려줍니다.
 Method getDeclaredMethod (String  name, Class [] parameterTypes)
          이 Class 오브젝트가 나타내는 클래스 또는 인터페이스의 지정된 선언 메소드를 리후레크트 하는 Method 오브젝트를 돌려줍니다.
 Method [] getDeclaredMethods ()
          이 Class 오브젝트가 나타내는 클래스 또는 인터페이스가 선언한, 모든 메소드를 리후레크트 하는 Method 오브젝트의 배열을 돌려줍니다.
 Class getDeclaringClass ()
          이 Class 오브젝트가 나타내는 클래스 또는 인터페이스가 다른 클래스의 멤버의 경우는 그것이 선언된 클래스를 나타내는 Class 오브젝트를 돌려줍니다.
 Field getField (String  name)
          이 Class 오브젝트가 나타내는 클래스 또는 인터페이스의 지정된 public 멤버 필드를 리후레크트 하는 Field 오브젝트를 돌려줍니다.
 Field [] getFields ()
          이 Class 오브젝트가 나타내는 클래스 또는 인터페이스의 모든 액세스 가능한 public 필드를 리후레크트 하는 Field 오브젝트를 보관 유지하고 있는 배열을 돌려줍니다.
 Class [] getInterfaces ()
          이 오브젝트가 나타내는 클래스 또는 인터페이스에 의해 구현되는 인터페이스를 취득합니다.
 Method getMethod (String  name, Class [] parameterTypes)
          이 Class 오브젝트가 나타내는 클래스 또는 인터페이스의 지정된 public 멤버 메소드를 리후레크트 하는 Method 오브젝트를 돌려줍니다.
 Method [] getMethods ()
          이 Class 오브젝트가 나타내는 클래스 또는 인터페이스의 모든 public 멤버 메소드를 리후레크트 하는 Method 오브젝트를 저장하고 있는 배열을 돌려줍니다.
 int getModifiers ()
          이 클래스 또는 인터페이스의 Java 언어 수식자를 정수형에 encode 해 돌려줍니다.
 String getName ()
          이 Class 오브젝트가 나타내는 엔티티 (클래스, 인터페이스, 배열 클래스, 원시적형, 또는 void)의 이름을,String 로서 돌려줍니다.
 Package getPackage ()
          이 클래스의 패키지를 취득합니다.
 ProtectionDomain getProtectionDomain ()
          이 클래스의 ProtectionDomain 를 돌려줍니다.
 URL getResource (String  name)
          지정된 이름의 리소스를 찾습니다.
 InputStream getResourceAsStream (String  name)
          지정된 이름의 리소스를 검색합니다.
 Object [] getSigners ()
          이 클래스의 서명자를 취득합니다.
 Class getSuperclass ()
          이 Class 로 나타내지는 엔티티 (클래스, 인터페이스, 원시적형, 또는 void)의 슈퍼 클래스를 나타내는 Class 를 돌려줍니다.
 boolean isArray ()
          이 Class 오브젝트가 배열 클래스를 나타낼지 어떨지를 판정합니다.
 boolean isAssignableFrom (Class  cls)
          이 Class 오브젝트가 나타내는 클래스 또는 인터페이스가, 지정된 Class 파라미터가 나타내는 클래스 또는 인터페이스와 동일한지 어떤지 혹은 그 슈퍼 클래스 혹은 슈퍼 인터페이스일지 어떨지를 판정합니다.
 boolean isInstance (Object  obj)
          지정된 Object 가, 이 Class 가 나타내는 오브젝트와 대입 호환의 관계에 있을지 어떨지를 판정합니다.
 boolean isInterface ()
          지정된 Class 오브젝트가 인터페이스형을 나타낼지 어떨지를 판정합니다.
 boolean isPrimitive ()
          지정된 Class 오브젝트가 원시적형을 나타낼지 어떨지를 판정합니다.
 Object newInstance ()
          이 Class 오브젝트가 나타내는 클래스의 새로운 인스턴스를 생성합니다.
 String toString ()
          오브젝트를 캐릭터 라인으로 변환합니다.
 
클래스 java.lang. Object 에서 상속받은 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 

메소드의 상세

toString

public String  toString()
오브젝트를 캐릭터 라인으로 변환합니다. 그 캐릭터 라인은 「class」또는 「interface」등의 캐릭터 라인, 계속되어 스페이스, 계속되어 getName 가 돌려주는 형식의 완전 지정된 클래스명이라고 하는 구성으로 표현됩니다. 이 Class 오브젝트가 원시적형을 나타내는 경우, 이 메소드는 원시적형의 이름을 돌려주어, void 를 나타내는 경우는 「void」를 돌려줍니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
이 오브젝트의 캐릭터 라인 표현

forName

public static Class  forName(String  className)
                     throws ClassNotFoundException 
지정된 캐릭터 라인명을 가지는 클래스 또는 인터페이스에 관련지을 수 있던,Class 오브젝트를 돌려줍니다. 이 메소드를 호출하는 것은 다음의 기술에 상당합니다.
  Class.forName(className, true, currentLoader)
 
여기서,currentLoader 는 현재의 클래스를 정의하는 클래스 로더를 나타냅니다.

예를 들어 이하의 기술은 java.lang.Thread 라는 이름의 클래스의 실행시에 있어서의 Class 기술자를 돌려줍니다.

   Class t = Class.forName("java.lang.Thread")
 

forName("X") 의 호출에 의해,X 라고 하는 클래스가 초기화됩니다.

파라미터:
className - 요구하는 클래스의 완전 지정된 이름
반환값:
지정된 이름을 가지는 클래스의 Class 오브젝트
예외:
LinkageError - 링키지에 실패했을 경우
ExceptionInInitializerError - 이 메소드에 의한 초기화에 실패했을 경우
ClassNotFoundException - 클래스가 발견되지 않았던 경우

forName

public static Class  forName(String  name,
                            boolean initialize,
                            ClassLoader  loader)
                     throws ClassNotFoundException 
지정된 클래스 로더를 사용해, 지정된 캐릭터 라인명을 가지는 클래스 또는 인터페이스에 관련지을 수 있었던 Class 오브젝트를 돌려줍니다. 클래스 또는 인터페이스의 완전 지정된 이름을 (getName 가 돌려주는 형식과 같은 형식에서) 지정하면(자), 이 메소드는 클래스 또는 인터페이스를 찾아내 로드해, 링크 하려고 합니다. 클래스 또는 인터페이스를 로드하려면 , 지정된 클래스 로더가 사용됩니다. loader 파라미터가 null 의 경우, 클래스는 bootstrap 클래스 로더를 사용해 로드 됩니다. initialize 파라미터가 true 로, 그때까지 초기화되어 있지 않은 경우에만, 클래스는 초기화됩니다.

name 가 원시적형 또는 void 를 나타내는 경우, 무명 패키지내에서 name 라는 이름의 유저 정의의 클래스를 찾아내려고 합니다. 이 때문에, 이 메소드를 사용해, 원시적형 또는 void 를 나타내는 Class 오브젝트를 취득할 수 없습니다.

name 가 배열 클래스를 나타내는 경우, 배열 클래스의 컴퍼넌트형은 로드 됩니다만, 초기화되지 않습니다.

예를 들어, 인스턴스 메소드에서는

  Class.forName("Foo")
 
(은)는 다음과 같습니다.
  Class.forName("Foo", true, this.getClass(). getClassLoader())
 
다만, 이 메소드는 「Java 언어 사양」의 섹션 12.2, 12.3, 12.4 로 지정된, 로드, 링크, 또는 초기화에 관련하는 에러를 슬로우 합니다. 이 메소드는 요구된 클래스가 호출해 옆으로부터 액세스 가능한지 어떤지를 체크하지 않습니다.

loadernull 로, 시큐러티 매니저가 존재해, 호출측의 클래스 로더가 null 가 아닌 경우, 이 메소드는 시큐러티 매니저의 checkPermission 메소드를 RuntimePermission("getClassLoader") 의 액세스권을 사용해 호출하는 것에 의해, bootstrap 클래스 로더에 문제 없게 액세스 할 수 있는 것을 프로텍션합니다.

파라미터:
name - 요구하는 클래스의 완전 지정된 이름
initialize - 클래스를 초기화할 필요의 유무
loader - 클래스의 로드원일 필요가 있는 클래스 로더
반환값:
요구하는 클래스를 나타내는 클래스 오브젝트
예외:
LinkageError - 링키지에 실패했을 경우
ExceptionInInitializerError - 이 메소드에 의한 초기화에 실패했을 경우
ClassNotFoundException - 지정된 클래스 로더에 의해 클래스가 발견되지 않았던 경우
도입된 버젼:
1.2
관련 항목:
forName(String) , ClassLoader

newInstance

public Object  newInstance()
                   throws InstantiationException ,
                          IllegalAccessException 
Class 오브젝트가 나타내는 클래스의 새로운 인스턴스를 생성합니다. new 식에 하늘의 인수 리스트를 지정했을 경우와 같이, 클래스의 인스턴스가 생성됩니다. 클래스는 초기화되어 있지 않으면 초기화됩니다.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.PUBLIC 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

반환값:
이 오브젝트가 나타내는 클래스의 새롭게 할당할 수 있었던 인스턴스
예외:
IllegalAccessException - 클래스 또는 그 null constructor 에 액세스 할 수 없는 경우
InstantiationException - 이 Class 가 abstract 클래스, 인터페이스, 배열 클래스, 원시적형, 또는 void 를 나타내는 경우, 클래스가 null constructor를 보관 유지하지 않는 경우, 혹은 인스턴스의 생성이 다른 이유로써 실패했을 경우
ExceptionInInitializerError - 이 메소드에 의한 초기화가 실패했을 경우
SecurityException - 신규 인스턴스를 생성하는 액세스권이 없는 경우

isInstance

public boolean isInstance(Object  obj)
지정된 Object 가, 이 Class 가 나타내는 오브젝트와 대입 호환의 관계에 있을지 어떨지를 판정합니다. 이 메소드는 Java 언어의 instanceof 연산자와 동적으로 등가입니다. 지정된 Object 인수가 null 는 아니고, 이 Class 오브젝트가 나타내는 참조형에 ClassCastException 를 슬로우 하는 일 없이 캐스트 할 수 있는 경우, 이 메소드는 true 를 돌려줍니다. 그렇지 않은 경우는 false 를 돌려줍니다.

특히, 이 Class 오브젝트가 선언 클래스를 나타낼 때는 이 메소드는 지정된 Object 인수가 표현 클래스 (또는 그 서브 클래스)의 인스턴스의 경우에 true 를, 그렇지 않은 경우에 false 를 돌려줍니다. 이 Class 오브젝트가 배열 클래스를 나타낼 때는 항등변환 또는 확장 참조 변환을 이용해 지정된 Object 인수를 배열 클래스의 오브젝트로 변환할 수 있는 경우에 true 를, 그렇지 않은 경우에 false 를 돌려줍니다. 이 Class 오브젝트가 인터페이스를 나타낼 때는 지정된 Object 인수의 클래스 또는 슈퍼 클래스가 이 인터페이스를 구현하는 경우에 true 를, 그렇지 않은 경우에 false 를 돌려줍니다. 이 Class 오브젝트가 원시적형을 나타내는 경우는 false 를 돌려줍니다.

파라미터:
obj - 체크 대상의 오브젝트
반환값:
obj 가 이 클래스의 인스턴스의 경우는 true
도입된 버젼:
JDK1. 1

isAssignableFrom

public boolean isAssignableFrom(Class  cls)
Class 오브젝트가 나타내는 클래스 또는 인터페이스가, 지정된 Class 파라미터가 나타내는 클래스 또는 인터페이스와 동일한지 어떤지 혹은 그 슈퍼 클래스 혹은 슈퍼 인터페이스일지 어떨지를 판정합니다. 어딘가에 들어맞는 경우는 true 를, 그렇지 않은 경우는 false 를 돌려줍니다. 이 Class 오브젝트가 원시적형을 나타낼 때는 지정된 Class 파라미터와 이 Class 오브젝트가 일치하는 경우에 true 를, 그렇지 않은 경우에 false 를 돌려줍니다.

특히 이 메소드는 지정된 Class 파라미터가 표현하는 형태를, 항등변환 또는 확장 참조 변환을 사용해, 이 Class 오브젝트가 나타내는 형태로 변환할 수 있을지 어떨지를 조사합니다. 자세한 것은 「Java 언어 사양」의 섹션 5.1. 1 으로 5.1. 4 를 참조해 주세요.

파라미터:
cls - 체크 대상의 Class 오브젝트
반환값:
cls 형의 오브젝트가 이 클래스에 할당할 수 있을지 어떨지를 나타내는 boolean
예외:
NullPointerException - 지정된 Class 파라미터가 null 의 경우
도입된 버젼:
JDK1. 1

isInterface

public boolean isInterface()
지정된 Class 오브젝트가 인터페이스형을 나타낼지 어떨지를 판정합니다.

반환값:
이 오브젝트가 인터페이스를 나타내는 경우는 true, 그렇지 않은 경우는 false

isArray

public boolean isArray()
Class 오브젝트가 배열 클래스를 나타낼지 어떨지를 판정합니다.

반환값:
이 오브젝트가 배열 클래스를 나타내는 경우는 true, 그렇지 않은 경우는 false
도입된 버젼:
JDK1. 1

isPrimitive

public boolean isPrimitive()
지정된 Class 오브젝트가 원시적형을 나타낼지 어떨지를 판정합니다.

8 개의 Java 의 원시적형과 void 를 나타내는 9 개의 정의가 끝난 Class 오브젝트가 있습니다. 이것들은 Java 가상 머신이 작성해, 해당하는 원시적형과 같은 이름을 가집니다. 즉,boolean,byte,char,short,int,long,float,double, 및 void 입니다.

이러한 오브젝트에는 이하의 public static final 변수를 사용하는 방법에 따라서만 액세스 할 수 있습니다. 또, 이 메소드가 true 를 돌려주는 것은 이러한 9 개의 Class 오브젝트로 한정됩니다.

반환값:
이 클래스가 원시적형을 나타내는 경우에 한정해 true
도입된 버젼:
JDK1. 1
관련 항목:
Boolean.TYPE , Character.TYPE , Byte.TYPE , Short.TYPE , Integer.TYPE , Long.TYPE , Float.TYPE , Double.TYPE , Void.TYPE

getName

public String  getName()
Class 오브젝트가 나타내는 엔티티 (클래스, 인터페이스, 배열 클래스, 원시적형, 또는 void)의 이름을,String 로서 돌려줍니다.

이 클래스 오브젝트가 배열형이 아닌 참조형을 나타내는 경우, 「Java Language Specification, Second Edition」로 지정된 것에 따라, 클래스의 바이너리명이 돌려주어집니다. 이 클래스 오브젝트가 원시적형 또는 void 를 나타내는 경우, 다음의 겉(표)에 나타내는 이름이 돌려주어집니다. 요소형의 이름의 encode는 다음과 같이 됩니다.

 B            byte
 C            char
 D            double
 F            float
 I            int
 J            long
 Lclassname;  클래스 또는 인터페이스
 S            short
 Z            boolean
 V	    void
 
이 클래스 오브젝트가 배열의 클래스를 나타내는 경우, 이름의 내부 형식에서는 선두에 배열의 상자의 깊이를 나타내는 몇개의 "[" 캐릭터가 붙어, 그 후에 위에 나타낸 요소형의 이름이 계속됩니다. 따라서,
 (new Object[3]). getClass(). getName()
 
(은)는 "[Ljava.lang.Object;" 를 돌려주어,
 (new int[3][4][5][6][7][8][9]). getClass(). getName()
 
(은)는 "[[[[[[[I" 를 돌려줍니다. 클래스명 또는 인터페이스명의 classname 는 상기의 예의 같게 완전 지정된 이름으로 지정됩니다.

반환값:
이 오브젝트가 나타내는 클래스 또는 인터페이스의 이름

getClassLoader

public ClassLoader  getClassLoader()
클래스의 클래스 로더를 돌려줍니다. 구현에 따라서는 null 를 사용해 bootstrap 클래스 로더를 나타낼 수도 있습니다. 이 메소드는 이 클래스가 bootstrap 클래스 로더로 로드 되었을 경우에, 그러한 구현으로 null 를 돌려줍니다.

시큐러티 매니저가 존재해, 호출측의 클래스 로더가 null 가 아니고, 클래스 로더가 필요하게 되는 클래스의 클래스 로더의 상위 로더도 아닌 경우, 이 메소드는 시큐러티 매니저의 checkPermission 메소드를 RuntimePermission("getClassLoader") 의 액세스권을 사용해 호출하는 것에 의해 클래스의 클래스 로더에 문제 없게 액세스 할 수 있는 것을 프로텍션합니다.

이 오브젝트가 원시적형 또는 void 를 나타내는 경우는 null 가 돌려주어집니다.

반환값:
이 오브젝트가 나타내는 클래스 또는 인터페이스를 로드한 클래스 로더
예외:
SecurityException - 시큐러티 매니저가 존재해, 그 checkPermission 메소드가 클래스의 클래스 로더에게로의 액세스를 거부하는 경우
관련 항목:
ClassLoader , SecurityManager.checkPermission(java.security.Permission) , RuntimePermission

getSuperclass

public Class  getSuperclass()
Class 로 나타내지는 엔티티 (클래스, 인터페이스, 원시적형, 또는 void)의 슈퍼 클래스를 나타내는 Class 를 돌려줍니다. 이 Class 가,Object 클래스, 인터페이스, 원시적형, 또는 void 의 경우는 null 가 돌려주어집니다. 이 오브젝트가 배열 클래스를 나타내는 경우는 Object 클래스를 나타내는 Class 오브젝트가 돌려주어집니다.

반환값:
이 오브젝트가 나타내는 클래스의 슈퍼 클래스

getPackage

public Package  getPackage()
이 클래스의 패키지를 취득합니다. 패키지를 찾으려면 , 이 클래스의 클래스 로더가 사용됩니다. bootstrap 클래스 로더가 클래스를 로드했을 경우, CLASSPATH 로부터 로드 된 패키지세트를 검색해 클래스의 패키지를 찾아냅니다. 이 클래스의 클래스 로더가 패키지 오브젝트를 생성하지 않았던 경우는 null 가 돌려주어집니다.

클래스에 부속되는 마니페스트로 정보가 정의되었을 경우와 클래스 로더가 마니페스트의 속성을 가지는 패키지 인스턴스를 생성했을 경우에만, 패키지는 버젼과 사양의 속성을 가집니다.

반환값:
클래스의 패키지. 어카이브(archive) 또는 코드 베이스의 패키지의 정보를 이용할 수 없는 경우는 null

getInterfaces

public Class [] getInterfaces()
이 오브젝트가 나타내는 클래스 또는 인터페이스에 의해 구현되는 인터페이스를 취득합니다.

이 오브젝트가 클래스를 나타내는 경우, 반환값은 클래스에 의해 구현되는 모든 인터페이스를 나타내는 오브젝트를 저장하고 있는 배열입니다. 배열내의 인터페이스 오브젝트의 순서는 이 오브젝트가 나타내는 클래스를 선언하는 implements 절내의 인터페이스명의 순서에 일치합니다. 예를 들어,

 class Shimmer implements FloorWax, DessertTopping { ... }
 
그렇다고 하는 선언이 있어,s 의 값이 Shimmer 의 인스턴스이다고 합니다.
 s.getClass(). getInterfaces()[0]
 
그렇다고 하는 식의 값은 FloorWax 인터페이스를 나타내는 Class 오브젝트이며,
 s.getClass(). getInterfaces()[1]
 
그렇다고 하는 식의 값은 DessertTopping 인터페이스를 나타내는 Class 오브젝트입니다.

이 오브젝트가 인터페이스를 나타내는 경우, 그 인터페이스에 의해 확장된 모든 인터페이스를 나타내는 오브젝트가 배열내에 접어듭니다. 배열내의 인터페이스 오브젝트의 순서는 이 오브젝트가 나타내는 인터페이스를 선언하는 extends 절내의 인터페이스명의 순서에 일치합니다.

이 오브젝트가 인터페이스를 구현하지 않는 클래스 또는 인터페이스를 나타내는 경우, 이 메소드는 길이가 0 의 배열을 돌려줍니다.

이 오브젝트가 원시적형 또는 void 를 나타내는 경우, 이 메소드는 길이가 0 의 배열을 돌려줍니다.

반환값:
이 클래스에 의해 구현되는 인터페이스의 배열

getComponentType

public Class  getComponentType()
배열의 컴퍼넌트형을 나타내는 Class 를 돌려줍니다. 이 클래스가 배열 클래스를 나타내지 않는 경우, 이 메소드는 null 를 돌려줍니다.

반환값:
이 클래스가 배열의 경우, 이 클래스의 컴퍼넌트형을 나타내는 Class
도입된 버젼:
JDK1. 1
관련 항목:
Array

getModifiers

public int getModifiers()
이 클래스 또는 인터페이스의 Java 언어 수식자를 정수형에 encode 해 돌려줍니다. 수식자는 public,protected,private,final,static,abstract, 및 interface 용의 Java 가상 머신의 정수로부터 구성됩니다. 이것들은 Modifier 클래스의 메소드를 사용해 복호화(decode) 하지 않으면 안됩니다.

기본이 되는 클래스가 배열 클래스의 경우,public,private, 및 protected 의 각 수식자는 컴퍼넌트형의 수식자와 같습니다. 이 Class 가 원시적형 또는 void 의 경우,public 의 각 수식자는 항상 true 로,protectedprivate 수식자는 항상 false 입니다. 이 오브젝트가 배열 클래스, 원시적형, 또는 void 를 나타내는 경우,final 수식자는 항상 true 로, 그 인터페이스 수식자는 항상 false 입니다. 다른 수식자의 값은 이 지정에서는 판정되지 않습니다.

수식자의 encode는 「Java 가상 머신 사양」의 표 4.1 으로 정의하고 있습니다.

반환값:
이 클래스의 수식자를 나타내는 int
도입된 버젼:
JDK1. 1
관련 항목:
Modifier

getSigners

public Object [] getSigners()
이 클래스의 서명자를 취득합니다.

반환값:
이 클래스의 서명자. 서명자가 없는 경우는 null. 특히 이 메소드는 이 오브젝트가 원시적형 또는 void 를 나타내는 경우에는 null 를 돌려주는
도입된 버젼:
JDK1. 1

getDeclaringClass

public Class  getDeclaringClass()
Class 오브젝트가 나타내는 클래스 또는 인터페이스가 다른 클래스의 멤버의 경우는 그것이 선언된 클래스를 나타내는 Class 오브젝트를 돌려줍니다. 이 클래스 또는 인터페이스가 다른 클래스의 멤버가 아닌 경우는 null 를 돌려줍니다. 이 Class 오브젝트가 배열 클래스, 원시적형, 또는 void 를 나타내는 경우, 이 메소드는 null 를 돌려줍니다.

반환값:
이 클래스를 선언하는 클래스
도입된 버젼:
JDK1. 1

getClasses

public Class [] getClasses()
Class 오브젝트가 나타내는 클래스의 멤버인, 모든 public 클래스 및 인터페이스를 나타내는 Class 오브젝트를 저장하고 있는 배열을 돌려줍니다. 슈퍼 클래스에서 상속받은 public 클래스 및 인터페이스의 멤버, 및 클래스가 선언한 public 클래스와 인터페이스의 멤버도 포함됩니다. 이 Class 오브젝트가 public 멤버 클래스나 인터페이스를 가지지 않는 경우나, 원시적형, 배열 클래스, 또는 void 를 나타내는 경우에는 길이가 0 의 배열을 돌려줍니다.

이 클래스 및 이 클래스의 각각의 슈퍼 클래스에 대해서, 다음의 시큐러티 체크가 실행됩니다. 시큐러티 매니저가 존재하는 경우, 그 checkMemberAccess 메소드는 thisMember.PUBLIC 를 인수로 지정해 불려 갑니다 (this 는 멤버를 취득하는 대상의 클래스 또는 슈퍼 클래스). 클래스가 패키지내에 있었을 경우, 시큐러티 매니저의 checkPackageAccess 메소드가 패키지명을 인수로 지정해 불려 갑니다. 이러한 호출은 SecurityException 가 되는 경우가 있습니다.

반환값:
이 클래스의 public 멤버를 나타내는 Class 오브젝트의 배열
예외:
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getFields

public Field [] getFields()
                  throws SecurityException 
Class 오브젝트가 나타내는 클래스 또는 인터페이스의 모든 액세스 가능한 public 필드를 리후레크트 하는 Field 오브젝트를 보관 유지하고 있는 배열을 돌려줍니다. 돌려주어진 배열내의 요소는 소트 되어 있거나, 특정의 순서가 되어 있을 것은 없습니다. 클래스 또는 인터페이스에 액세스 가능한 public 필드가 없는 경우나, 클래스 또는 인터페이스가 배열 클래스, 원시적형, 또는 void 를 나타내는 경우는 길이가 0 의 배열을 돌려줍니다.

특히, 이 Class 오브젝트가 클래스를 나타내는 경우, 이 메소드는 이 클래스와 그 모든 슈퍼 클래스의 public 필드를 돌려줍니다. 이 Class 오브젝트가 인터페이스를 나타내는 경우는 이 인터페이스와 모든 슈퍼 인터페이스의 필드를 돌려줍니다.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.PUBLIC 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

이 메소드는 배열 클래스의 암묵적인 길이 필드를 리후레크트 하지 않습니다. 유저 코드로 배열을 조작하려면 ,Array 클래스의 메소드를 사용할 필요가 있습니다.

「Java 언어 사양」의 섹션 8.2 로 8.3 을 참조해 주세요.

반환값:
public 필드를 나타내는 Field 오브젝트의 배열
예외:
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
Field , SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getMethods

public Method [] getMethods()
                    throws SecurityException 
Class 오브젝트가 나타내는 클래스 또는 인터페이스의 모든 public 멤버 메소드를 리후레크트 하는 Method 오브젝트를 저장하고 있는 배열을 돌려줍니다. 클래스 또는 인터페이스가 선언한 것, 및 슈퍼 클래스나 슈퍼 인터페이스로부터 계승된 것도 포함됩니다. 돌려주어진 배열내의 요소는 소트 되어 있거나, 특정의 순서가 되어 있을 것은 없습니다. 이 Class 오브젝트가 public 멤버 메소드가 없는 클래스 또는 인터페이스를 나타내는 경우나, 배열 클래스, 원시적형, 또는 void 를 나타내는 경우는 길이가 0 의 배열을 돌려줍니다.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.PUBLIC 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

클래스 초기화 메소드 <clinit> 는 돌려주어지는 배열에 들어가 있지 않습니다. 클래스가 복수의 public 멤버 메소드를 같은 파라미터형으로 선언하면(자), 그러한 메소드는 모두 돌려주어진 배열에 들어갑니다.

「Java 언어 사양」의 섹션 8.2 로 8.4 를 참조해 주세요.

반환값:
이 클래스의 public 메소드를 나타내는 Method 오브젝트의 배열
예외:
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
Method , SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getConstructors

public Constructor [] getConstructors()
                              throws SecurityException 
Class 오브젝트가 나타내는 클래스의 모든 public constructor를 리후레크트 하는 Constructor 오브젝트를 저장하고 있는 배열을 돌려줍니다. 클래스에 public constructor 이 없는 경우, 클래스가 배열 클래스의 경우, 또는 클래스가 원시적형 또는 void 를 리후레크트 하는 경우에는 길이가 0 의 배열을 돌려줍니다.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.PUBLIC 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

반환값:
이 클래스의 선언된 모든 public constructor 이 지정된 parameterTypes 와 일치하는 경우,Method 오브젝트를 포함한 배열
예외:
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
Constructor , SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getField

public Field  getField(String  name)
               throws NoSuchFieldException ,
                      SecurityException 
Class 오브젝트가 나타내는 클래스 또는 인터페이스의 지정된 public 멤버 필드를 리후레크트 하는 Field 오브젝트를 돌려줍니다. name 파라미터는 요구되는 필드의 단순한 이름을 지정하는 String 입니다.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.PUBLIC 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

리후레크트 되는 필드는 다음의 알고리즘으로 결정됩니다. 여기에서는 이 오브젝트가 나타내는 클래스를 C 로 합니다.

  1. C 가 지정된 이름을 가지는 public 필드를 선언하면(자), 그것이 리후레크트 되는 필드가 됩니다.
  2. 상기의 스텝 1 으로 필드가 발견되지 않았던 경우는 이 알고리즘을 C 의 각각의 직접 슈퍼 인터페이스에 재귀적으로 적용합니다. 직접 슈퍼 인터페이스는 선언된 순서로 검색됩니다.
  3. 상기의 스텝 1 으로 2 로 필드가 발견되지 않는 경우, 및 C 가 슈퍼 클래스 S 를 가지는 경우는 이 알고리즘은 S 에 의해 재귀적으로 불려 갑니다. C 가 슈퍼 클래스를 가지지 않는 경우는 NoSuchFieldException 가 슬로우 됩니다.

「Java 언어 사양」의 섹션 8.2 로 8.3 을 참조해 주세요.

파라미터:
name - 필드명
반환값:
name 로 지정된 이 클래스의 Field 오브젝트
예외:
NoSuchFieldException - 지정된 이름의 필드가 발견되지 않는 경우
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
Field , SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getMethod

public Method  getMethod(String  name,
                        Class [] parameterTypes)
                 throws NoSuchMethodException ,
                        SecurityException 
Class 오브젝트가 나타내는 클래스 또는 인터페이스의 지정된 public 멤버 메소드를 리후레크트 하는 Method 오브젝트를 돌려줍니다. name 파라미터는 요구되는 메소드에 단순한 이름을 지정하는 String 입니다. parameterTypes 파라미터는 메소드의 가파라미터형이 선언된 순서로 식별하는 Class 오브젝트의 배열입니다. parameterTypesnull 의 경우는 하늘의 배열과 같이 다루어집니다.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.PUBLIC 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

name 가 "<init>" 또는 "<clinit>" 의 경우,NoSuchMethodException 가 슬로우 됩니다. 그렇지 않은 경우, 리후레크트 되는 메소드는 다음의 알고리즘으로 지정됩니다. 여기에서는 이 오브젝트가 나타내는 클래스를 C 로 합니다.

  1. C 를 검색해, 「일치하는 메소드」를 찾아냅니다. 일치하는 메소드가 발견되지 않는 경우는 스텝 1 의 알고리즘이 C 의 슈퍼 클래스에 대해서 재귀적으로 불려 갑니다.
  2. 상기의 스텝 1 으로 메소드가 발견되지 않았던 경우는 C 의 슈퍼 인터페이스를 검색해 일치하는 메소드를 찾아냅니다. 일치하는 메소드가 발견되었을 경우는 그것이 리후레크트 됩니다.
C: 클래스에서의 일치하는 메소드는 다음과 같이 해 찾아낼 수 있습니다. C 가, 같은 가파라미터형을 가져, 지정된 이름을 가지는 public 메소드를 다만 1 kr 선언하는 경우, 그 메소드는 리후레크트 됩니다. 그러한 메소드가 C 로 복수 발견되어, 그 메소드의 1 개가 그 이외의 어떤 것보다 명확한 귀가형을 가지는 경우에는 그 메소드가 리후레크트 됩니다. 그렇지 않은 경우는 상응하는 메소드의 1 개가 임의에 선택됩니다.

「Java 언어 사양」의 섹션 8.2 로 8.4 를 참조해 주세요.

파라미터:
name - 메소드의 이름
parameterTypes - 파라미터의 리스트
반환값:
지정된 nameparameterTypes 와 일치하는 Method 오브젝트
예외:
NoSuchMethodException - 일치하는 메소드가 발견되지 않는 경우, 혹은 이름이 "<init>" 또는 "<clinit>" 의 경우
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
Method , SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getConstructor

public Constructor  getConstructor(Class [] parameterTypes)
                           throws NoSuchMethodException ,
                                  SecurityException 
Class 오브젝트가 나타내는 클래스의 지정된 public constructor를 리후레크트 하는 Constructor 오브젝트를 돌려줍니다. parameterTypes 파라미터는 constructor 의 가파라미터형이 선언된 순서로 식별하는 Class 오브젝트의 배열입니다.

리후레크트 하는 constructor 은 parameterTypes 로 지정된 형태와 일치하는 가파라미터형을 가지는 이 Class 오브젝트가 나타내는 클래스의 public constructor 입니다.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.PUBLIC 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

파라미터:
parameterTypes - 파라미터 배열
반환값:
지정된 parameterTypes 와 일치하는 public constructor 의 Method 오브젝트
예외:
NoSuchMethodException - 일치하는 메소드가 발견되지 않는 경우
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
Constructor , SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getDeclaredClasses

public Class [] getDeclaredClasses()
                           throws SecurityException 
Class 오브젝트가 나타내는 클래스의 멤버로서 선언된, 모든 클래스 및 인터페이스를 리후레크트 하는 Class 오브젝트의 배열을 돌려줍니다. 이것에는 클래스가 선언한 public, protected, 디폴트 (package) 액세스, 및 private 클래스와 인터페이스는 포함됩니다만, 계승 클래스와 인터페이스는 포함되지 않습니다. 이 메소드는 클래스가 멤버로서 클래스 또는 인터페이스를 선언하고 있지 않은 경우나, 이 Class 오브젝트가 원시적형, 배열 클래스, 또는 void 를 나타내는 경우에는 길이가 0 의 배열을 돌려줍니다.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.DECLARED 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

반환값:
이 클래스의 선언된 모든 멤버를 나타내는 Class 오브젝트의 배열
예외:
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getDeclaredFields

public Field [] getDeclaredFields()
                          throws SecurityException 
Class 오브젝트가 나타내는 클래스 또는 인터페이스가 선언한, 모든 필드를 리후레크트 하는 Field 오브젝트의 배열을 돌려줍니다. 이것에는 public, protected, 디폴트 (package) 액세스, 및 private 필드는 포함됩니다만, 계승 필드는 포함되지 않습니다. 돌려주어진 배열내의 요소는 소트 되어 있거나, 특정의 순서가 되어 있을 것은 없습니다. 이 메소드는 클래스 또는 인터페이스가 필드를 선언하지 않는 경우나, 이 Class 오브젝트가 원시적형, 배열 클래스, 또는 void 를 나타내는 경우에는 길이가 0 의 배열을 돌려줍니다.

「Java 언어 사양」의 섹션 8.2 로 8.3 을 참조해 주세요.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.DECLARED 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

반환값:
이 클래스의 선언된 모든 멤버를 나타내는 Field 오브젝트의 배열
예외:
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
Field , SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getDeclaredMethods

public Method [] getDeclaredMethods()
                            throws SecurityException 
Class 오브젝트가 나타내는 클래스 또는 인터페이스가 선언한, 모든 메소드를 리후레크트 하는 Method 오브젝트의 배열을 돌려줍니다. 이것에는 public, protected, 디폴트 (package) 액세스, 및 private 메소드는 포함됩니다만, 계승 메소드는 포함되지 않습니다. 돌려주어진 배열내의 요소는 소트 되어 있거나, 특정의 순서가 되어 있을 것은 없습니다. 이 메소드는 클래스 또는 인터페이스가 메소드를 선언하지 않는 경우나, 이 Class 오브젝트가 원시적형, 배열 클래스, 또는 void 를 나타내는 경우는 길이가 0 의 배열을 돌려줍니다. 클래스 초기화 메소드 <clinit> 는 돌려주어진 배열에는 없습니다. 클래스가 같은 파라미터형을 가지는 복수의 public 멤버 메소드를 선언하는 경우, 그러한 메소드는 모두 돌려주어진 배열에 있습니다.

「Java 언어 사양」의 섹션 8.2 를 참조해 주세요.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.DECLARED 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

반환값:
이 클래스의 선언된 모든 메소드를 나타내는 Method 오브젝트의 배열
예외:
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
Method , SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getDeclaredConstructors

public Constructor [] getDeclaredConstructors()
                                      throws SecurityException 
Class 오브젝트가 나타내는 클래스가 선언한 모든 constructor를 리후레크트 하는 Constructor 오브젝트의 배열을 돌려줍니다. 이것들은 public, protected, 디폴트 (package) 액세스, 및 private constructor 입니다. 돌려주어진 배열내의 요소는 소트 되어 있거나, 특정의 순서가 되어 있을 것은 없습니다. 클래스가 디폴트의 constructor를 가지는 경우, 이 constructor 은 돌려주어진 배열에 있습니다. 이 메소드는 이 Class 오브젝트가 인터페이스, 원시적형, 배열 클래스, 또는 void 를 나타내는 경우에는 길이가 0 의 배열을 돌려줍니다.

「Java 언어 사양」의 섹션 8.2 를 참조해 주세요.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.DECLARED 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

반환값:
이 클래스의 선언된 모든 constructor를 나타내는 Method 오브젝트의 배열
예외:
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
Constructor , SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getDeclaredField

public Field  getDeclaredField(String  name)
                       throws NoSuchFieldException ,
                              SecurityException 
Class 오브젝트가 나타내는 클래스 또는 인터페이스의 지정된 선언 필드를 리후레크트 하는 Field 오브젝트를 돌려줍니다. name 파라미터는 요구된 필드의 단순한 이름을 지정하는 String 입니다. 이 메소드가 배열 클래스의 length 필드를 리후레크트 할 것은 없습니다.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.DECLARED 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

파라미터:
name - 필드의 이름
반환값:
이 클래스로 지정된 필드의 Field 오브젝트
예외:
NoSuchFieldException - 지정된 이름의 필드가 발견되지 않는 경우
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
Field , SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getDeclaredMethod

public Method  getDeclaredMethod(String  name,
                                Class [] parameterTypes)
                         throws NoSuchMethodException ,
                                SecurityException 
Class 오브젝트가 나타내는 클래스 또는 인터페이스의 지정된 선언 메소드를 리후레크트 하는 Method 오브젝트를 돌려줍니다. name 파라미터는 요구된 메소드의 단순한 이름을 지정하는 String 입니다. parameterTypes 파라미터는 메소드의 가파라미터형을 선언순서에 식별하는 Class 오브젝트의 배열입니다. 같은 파라미터형을 가지는 복수의 메소드가 1 개의 클래스에서 선언되어 그러한 메소드의 1 개가 그 이외의 어떤 것보다 명확한 귀가형을 가지는 경우에는 그 메소드가 돌려주어집니다. 그렇지 않은 경우, 메소드의 1 개가 임의에 선택됩니다. 이름이 "<init>" 또는 "<clinit>" 의 경우는 NoSuchMethodException 가 슬로우 됩니다.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.DECLARED 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

파라미터:
name - 메소드의 이름
parameterTypes - 파라미터 배열
반환값:
이 클래스의 지정된 이름과 파라미터와 일치하는 메소드의 Method 오브젝트
예외:
NoSuchMethodException - 일치하는 메소드가 발견되지 않는 경우
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
Method , SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getDeclaredConstructor

public Constructor  getDeclaredConstructor(Class [] parameterTypes)
                                   throws NoSuchMethodException ,
                                          SecurityException 
Class 오브젝트가 나타내는 클래스 또는 인터페이스의 지정된 constructor를 리후레크트 하는 Constructor 오브젝트를 돌려줍니다. parameterTypes 파라미터는 constructor 의 가파라미터형을 선언순서에 식별하는 Class 오브젝트의 배열입니다.

시큐러티 매니저가 존재하는 경우, 이 메소드는 우선 thisMember.DECLARED 를 인수로 지정해 시큐러티 매니저의 checkMemberAccess 메소드를 호출합니다. 클래스가 패키지내에 있었을 경우, 이 메소드는 패키지명을 인수로 지정해 시큐러티 매니저의 checkPackageAccess 메소드도 호출합니다. 이러한 호출에 의해, SecurityException 가 발생하는 경우가 있습니다.

파라미터:
parameterTypes - 파라미터 배열
반환값:
지정된 파라미터 리스트를 가지는 constructor 의 Method 오브젝트
예외:
NoSuchMethodException - 일치하는 메소드가 발견되지 않는 경우
SecurityException - 정보에의 액세스가 거부되었을 경우
도입된 버젼:
JDK1. 1
관련 항목:
Constructor , SecurityManager.checkMemberAccess(Class, int) , SecurityManager.checkPackageAccess(String)

getResourceAsStream

public InputStream  getResourceAsStream(String  name)
지정된 이름의 리소스를 검색합니다. 이 메소드는 이 이름을 가지는 리소스가 발견되지 않는 경우는 null 를 돌려줍니다. 어느 클래스에 관련한 리소스를 검색하는 규칙은 클래스의 정의측 클래스 로더에 의해 구현됩니다.

이 메소드는 리소스명에 다음과 같은 변경을 더한 후에 호출을 그 클래스 로더에 delegate 합니다. 「/」으로 시작되는 리소스명은 그대로 사용합니다. 그 이외의 경우는 「.」(으)로부터 「/」으로 변환한 후에, 패키지의 이름을 붙입니다. 이 오브젝트가 bootstrap loader로 로드 되면(자), 호출은 ClassLoader.getSystemResourceAsStream 에 delegate 됩니다.

파라미터:
name - 요구되는 리소스의 이름
반환값:
java.io.InputStream 오브젝트
예외:
NullPointerException - namenull 의 경우
도입된 버젼:
JDK1. 1
관련 항목:
ClassLoader

getResource

public URL  getResource(String  name)
지정된 이름의 리소스를 찾습니다. 이 메소드는 지정된 이름의 리소스가 발견되지 않는 경우는 null 를 돌려줍니다. 어느 클래스에 관련한 리소스를 검색하는 규칙은 클래스의 정의측 클래스 로더에 의해 구현됩니다.

이 메소드는 리소스명에 다음과 같은 변경을 더한 후에 호출을 그 클래스 로더에 delegate 합니다. 「/」으로 시작되는 리소스명은 그대로 사용합니다. 그 이외의 경우는 「.」(으)로부터 「/」으로 변환한 후에, 패키지의 이름을 붙입니다. 이 오브젝트가 bootstrap loader로 로드 되면(자), 호출은 ClassLoader.getSystemResource 에 delegate 됩니다.

파라미터:
name - 요구되는 리소스의 이름
반환값:
java.net.URL 오브젝트
도입된 버젼:
JDK1. 1
관련 항목:
ClassLoader

getProtectionDomain

public ProtectionDomain  getProtectionDomain()
이 클래스의 ProtectionDomain 를 돌려줍니다. 시큐러티 매니저가 인스톨 되고 있으면(자), 이 메소드는 우선 시큐러티 매니저의 checkPermission 메소드를 RuntimePermission("getProtectionDomain") 액세스권을 사용해 호출하는 것에 의해 ProtectionDomain 를 문제 없게 취득할 수 있는 것을 프로텍션합니다.

반환값:
이 클래스의 ProtectionDomain
예외:
SecurityException - 시큐러티 매니저가 존재해, 그 checkPermission 메소드가 ProtectionDomain 의 취득을 허가하지 않는 경우
도입된 버젼:
1.2
관련 항목:
ProtectionDomain , SecurityManager.checkPermission(java.security.Permission) , RuntimePermission

desiredAssertionStatus

public boolean desiredAssertionStatus()
이 메소드의 호출시에 이 클래스를 초기화하는 경우, 클래스에 할당할 수 있는 선언 스테이터스를 돌려줍니다. 이 클래스의 선언 스테이터스가 설정되어 있다면, 최신의 설정이 돌려주어집니다. 그 이외의 경우, 이 클래스에 관련하는 몇개의 패키지의 디폴트 선언 스테이터스가 존재한다면, 최적인 패키지의 디폴트 선언 스테이터스의 최신의 설정이 돌려주어집니다. 그 이외의 경우, 이 클래스가 시스템 클래스가 아닌 (즉 클래스 로더를 보관 유지한다)라면, 클래스 로더의 디폴트 선언 스테이터스가 돌려주어집니다. 그 이외의 경우, 시스템 클래스의 디폴트 선언 스테이터스가 돌려주어집니다.

이것은 JRE 자체에 혜택을 주는 메소드이기 (위해)때문에, 프로그래머가 이 메소드를 필요로 하는 것은 거의 없습니다 (이 메소드에 의해, 초기화시에 선언이 유효한가 어떤가를 클래스를 판별할 수 있습니다). 지정된 클래스의 초기화시에, 이 메소드가, 클래스에 관련지을 수 있었던 실제의 선언 스테이터스를 돌려준다고는 할 수 없는 것에 유의해 주세요.

반환값:
대상으로 하는 지정된 클래스의 선언 스테이터스
도입된 버젼:
1.4
관련 항목:
ClassLoader.setClassAssertionStatus(java.lang.String, boolean) , ClassLoader.setPackageAssertionStatus(java.lang.String, boolean) , ClassLoader.setDefaultAssertionStatus(boolean)

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

버그의 보고와 기능의 리퀘스트
이외의 API 레퍼런스 및 개발자용 문서에 대해서는 Java 2 SDK SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.