ClassLoader.DefineClass 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
DefineClass(Byte[], Int32, Int32) |
사용되지 않음.
바이트 배열을 클래스 |
DefineClass(String, ByteBuffer, ProtectionDomain) |
|
DefineClass(String, Byte[], Int32, Int32) |
바이트 배열을 클래스 |
DefineClass(String, Byte[], Int32, Int32, ProtectionDomain) |
바이트 배열을 선택적 |
DefineClass(Byte[], Int32, Int32)
주의
deprecated
바이트 배열을 클래스Class
의 instance 변환합니다.
[Android.Runtime.Register("defineClass", "([BII)Ljava/lang/Class;", "")]
[System.Obsolete("deprecated")]
protected Java.Lang.Class? DefineClass (byte[]? b, int off, int len);
[<Android.Runtime.Register("defineClass", "([BII)Ljava/lang/Class;", "")>]
[<System.Obsolete("deprecated")>]
member this.DefineClass : byte[] * int * int -> Java.Lang.Class
매개 변수
- b
- Byte[]
클래스 데이터를 구성하는 바이트입니다. 을 off
통한 off+len-1
위치의 바이트는 Java&무역에서 정의한 <>대로 유효한 클래스 파일의 형식이어야 합니다. Virtual Machine 사양</인용>.
- off
- Int32
클래스 데이터의 시작 오프셋 b
- len
- Int32
클래스 데이터의 길이
반환
Class
지정된 클래스 데이터에서 만든 개체입니다.
- 특성
예외
가 classRep
유효한 클래스를 포함하지 않으면 입니다.
이 length
면 offset
이고, 가 의 classRep
길이보다 크면 offset + length
입니다.
설명
바이트 배열을 클래스Class
의 instance 변환합니다. 를 Class
사용하려면 먼저 해결해야 합니다. 이 메서드는 이진 이름을 첫 번째 인수로 사용하고 더 안전한 버전을 위해 더 이상 사용되지 않습니다.
이 멤버는 더 이상 사용되지 않습니다. 으로 대체됨 #defineClass(String, byte[], int, int) defineClass(String, byte[], int, int)
에 대한 Java 설명서입니다 java.lang.ClassLoader.defineClass(byte[], int, int)
.
이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.
적용 대상
DefineClass(String, ByteBuffer, ProtectionDomain)
java.nio.ByteBuffer <tt>ByteBuffer</tt>
를 클래스 의 Class
instance 변환하고 선택적 ProtectionDomain
을 사용합니다.
[Android.Runtime.Register("defineClass", "(Ljava/lang/String;Ljava/nio/ByteBuffer;Ljava/security/ProtectionDomain;)Ljava/lang/Class;", "")]
protected Java.Lang.Class? DefineClass (string? name, Java.Nio.ByteBuffer? b, Java.Security.ProtectionDomain? protectionDomain);
[<Android.Runtime.Register("defineClass", "(Ljava/lang/String;Ljava/nio/ByteBuffer;Ljava/security/ProtectionDomain;)Ljava/lang/Class;", "")>]
member this.DefineClass : string * Java.Nio.ByteBuffer * Java.Security.ProtectionDomain -> Java.Lang.Class
매개 변수
- name
- String
예상된 이진 이름입니다. 클래스의 또는 null
알 수 없는 경우
클래스 데이터를 구성하는 바이트입니다. 위치 b.position()
b.position() + b.limit() -1
간 바이트는 Java&무역에서 정의한 <>대로 유효한 클래스 파일의 형식이어야 합니다. Virtual Machine 사양</인용>.
- protectionDomain
- ProtectionDomain
클래스의 ProtectionDomain 또는 null
입니다.
반환
Class
데이터에서 만든 개체 및 선택적 ProtectionDomain
입니다.
- 특성
예외
가 b
유효한 클래스를 포함하지 않으면 입니다.
가 에 포함된 클래스의 이름과 같지 않으면 className
입니다 b
.
설명
java.nio.ByteBuffer <tt>ByteBuffer</tt>
를 클래스 의 Class
instance 변환하고 선택적 ProtectionDomain
을 사용합니다. 도메인이 null
이면 의 설명서 #defineClass(String, byte[], int, int)
에 지정된 대로 기본 도메인이 클래스에 할당됩니다. 클래스를 사용하려면 먼저 이 클래스를 확인해야 합니다.
패키지에 대한 인증서 집합을 결정하는 패키지에 정의된 첫 번째 클래스에 대한 규칙 및 클래스 이름에 대한 제한은 에 대한 #defineClass(String, byte[], int, int, ProtectionDomain)
설명서에 지정된 것과 동일합니다.
양식 cl.defineClass(
이름,
bBuffer,
pd)
의 이 메서드를 호출하면 문과 정확히 동일한 결과가 생성됩니다.
...<br> byte[] temp = new byte[bBuffer.
java.nio.ByteBuffer#remaining remaining
()];<br> bBuffer.java.nio.ByteBuffer#get(byte[]) get
(temp);<br> return #defineClass(String, byte[], int, int, ProtectionDomain) cl.defineClass
(name, temp, 0, temp.length, pd);<br>
1.5에 추가되었습니다.
이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.
적용 대상
DefineClass(String, Byte[], Int32, Int32)
바이트 배열을 클래스Class
의 instance 변환합니다.
[Android.Runtime.Register("defineClass", "(Ljava/lang/String;[BII)Ljava/lang/Class;", "")]
protected Java.Lang.Class? DefineClass (string? name, byte[]? b, int off, int len);
[<Android.Runtime.Register("defineClass", "(Ljava/lang/String;[BII)Ljava/lang/Class;", "")>]
member this.DefineClass : string * byte[] * int * int -> Java.Lang.Class
매개 변수
- name
- String
클래스의 예상된 이진 이름이거나 null
알 수 없는 경우
- b
- Byte[]
클래스 데이터를 구성하는 바이트입니다. 을 off
통한 off+len-1
위치의 바이트는 Java&무역에서 정의한 <>대로 유효한 클래스 파일의 형식이어야 합니다. Virtual Machine 사양</인용>.
- off
- Int32
클래스 데이터의 시작 오프셋 b
- len
- Int32
클래스 데이터의 길이
반환
Class
지정된 클래스 데이터에서 만든 개체입니다.
- 특성
예외
가 classRep
유효한 클래스를 포함하지 않으면 입니다.
이 length
면 offset
이고, 가 의 classRep
길이보다 크면 offset + length
입니다.
설명
바이트 배열을 클래스Class
의 instance 변환합니다. 를 Class
사용하려면 먼저 해결해야 합니다.
이 메서드는 새로 정의된 클래스에 기본값 java.security.ProtectionDomain <tt>ProtectionDomain</tt>
을 할당합니다. 는 ProtectionDomain
가 호출될 때 java.security.Policy#getPermissions(java.security.CodeSource) <tt>Policy.getPolicy().getPermissions(new CodeSource(null, null))</tt>
반환되는 동일한 사용 권한 집합을 효과적으로 부여합니다. 기본 도메인은 의 첫 번째 호출 #defineClass(String, byte[], int, int) <tt>defineClass</tt>
에서 만들어지고 후속 호출에서 다시 사용됩니다.
클래스에 특정 ProtectionDomain
를 할당하려면 를 인수 중 하나로 사용하는 ProtectionDomain
메서드를 사용합니다#defineClass(String, byte[], int, int, java.security.ProtectionDomain) <tt>defineClass</tt>
.
1.1에 추가되었습니다.
에 대한 Java 설명서입니다 java.lang.ClassLoader.defineClass(java.lang.String, byte[], int, int)
.
이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.
적용 대상
DefineClass(String, Byte[], Int32, Int32, ProtectionDomain)
바이트 배열을 선택적 ProtectionDomain
를 사용하여 클래스 Class
의 instance 변환합니다.
[Android.Runtime.Register("defineClass", "(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;", "")]
protected Java.Lang.Class? DefineClass (string? name, byte[]? b, int off, int len, Java.Security.ProtectionDomain? protectionDomain);
[<Android.Runtime.Register("defineClass", "(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;", "")>]
member this.DefineClass : string * byte[] * int * int * Java.Security.ProtectionDomain -> Java.Lang.Class
매개 변수
- name
- String
클래스의 예상된 이진 이름이거나 null
알 수 없는 경우
- b
- Byte[]
클래스 데이터를 구성하는 바이트입니다. 을 off
통한 off+len-1
위치의 바이트는 Java&무역에서 정의한 <>대로 유효한 클래스 파일의 형식이어야 합니다. Virtual Machine 사양</인용>.
- off
- Int32
클래스 데이터의 시작 오프셋 b
- len
- Int32
클래스 데이터의 길이
- protectionDomain
- ProtectionDomain
클래스의 ProtectionDomain
반환
Class
데이터에서 만든 개체 및 선택적 ProtectionDomain
입니다.
- 특성
예외
가 classRep
유효한 클래스를 포함하지 않으면 입니다.
이 length
면 offset
이고, 가 의 classRep
길이보다 크면 offset + length
입니다.
가 에 포함된 클래스의 이름과 같지 않으면 className
입니다 classRep
.
설명
바이트 배열을 선택적 ProtectionDomain
를 사용하여 클래스 Class
의 instance 변환합니다. 도메인이 null
이면 의 설명서 #defineClass(String, byte[], int, int)
에 지정된 대로 기본 도메인이 클래스에 할당됩니다. 클래스를 사용하려면 먼저 이 클래스를 확인해야 합니다.
패키지에 정의된 첫 번째 클래스는 해당 패키지에 정의된 모든 후속 클래스에 포함되어야 하는 정확한 인증서 집합을 결정합니다. 클래스에 대한 인증서 집합은 클래스 내의 에서 java.security.CodeSource <tt>CodeSource</tt>
ProtectionDomain
가져옵니다. 해당 패키지에 추가된 모든 클래스는 동일한 인증서 집합을 포함해야 합니다. 그렇지 SecurityException
않으면 이 throw됩니다. 가 이null
면 name
이 검사 수행되지 않습니다. 정의 중인 클래스의 이진 이름과 바이트를 항상 전달해야 합니다. 이렇게 하면 정의 중인 클래스가 실제로 클래스라고 생각되는 클래스가 됩니다.
"패키지의 모든 클래스는 부트스트랩 클래스 로더에서만 정의할 수 있으므로 지정된 name
은 "java.
"java.*
로 시작할 수 없습니다. 가 이 아닌 null
경우 name
바이트 배열 "b
"에 지정된 클래스의 이진 이름과 같아야 합니다. 그렇지 않으면 이 NoClassDefFoundError <tt>NoClassDefFoundError</tt>
throw됩니다.
이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.