자바 리플렉션이 뭐야?
반성이란 무엇인가요?
반사에는 "역방향"이 있으므로 역과정이라는 의미입니다. 그럼 먼저 진행 과정이 어떤지 살펴보겠습니다.
클래스를 디자인하고 클래스를 객체로 인스턴스화하면 객체가 메서드나 속성을 호출하여 일부 기능을 구현합니다.
그럼 반성이란 무엇일까요?
아직도 위의 그림을 기억하실지 모르겠습니다. 제가 처음 자바를 접했을 때 배운 지식입니다. 내 자신의 이해는 이제 1을 알고 2를 추론한 다음 2를 통해 다른 정보를 얻는다는 것입니다. (이것은 단지 내 추측입니다. 그것이 사실인지 아닌지는 앞으로 연구가 필요합니다.)
실제 시나리오에 대한 비유는 다음과 같습니다.
你:妈妈,你知道剪刀在哪吗? 妈妈:我那天放针线的时候好像在针线盒里看到了,你去找找有没有。针线盒在客厅的茶几上。 你:好的。
그런 다음 "바느질 상자"를 "에서 파생했습니다. 바느질 상자", 그리고 "바느질 상자"에서 파생된 "재봉 상자" "가위"가 발견되었습니다.
우리의 생각은 클래스나 객체에서 클래스 클래스를 추론한 다음 클래스 클래스에서 클래스 정보를 얻는 것입니다.
더 혼란스러우신가요? 걱정하지 말고 아래를 내려다보세요.
바느질 상자 찾기 - 클래스 받기
먼저 클래스란 무엇인가요?
People 클래스가 p 클래스인 것처럼 Class 클래스는 People 클래스의 클래스입니다. Class 클래스는 p의 "할아버지"입니다.
이렇게 이해할 수 있습니다. java.lang.Class의 인스턴스 객체는 People이고 People의 인스턴스 객체는 p입니다. 우리의 아이디어는 People 클래스나 p 객체를 통해 Class 클래스를 얻은 다음 Class 클래스를 통해 속성, 메서드, 생성자 등과 같은 People 클래스 정보를 얻는 것입니다.
이제 Class 클래스가 무엇인지 알았으니, 클래스 클래스를 얻는 방법에 대해 알아보겠습니다.
Class 클래스를 찾는 세 가지 방법이 있습니다:
c1, c2, c3을 People 클래스의 "클래스 유형"이라고 한다는 점을 언급할 가치가 있습니다. 이제 알려진 조건을 요약합니다.
People: 클래스
p: object
c: 클래스 유형
가위 찾기 - People 클래스의 정보 가져오기
애플리케이션 1: 가져오기 class
의 모든 메소드 People 클래스를 얻는 메소드에서 ms는 루프를 통해 People 클래스 메소드를 저장하는 배열이며, 해당 이름, 매개변수 유형 및 반환 값을 레이어별로 가져옵니다.
마지막으로 메인 함수에서 직접 호출하면 됩니다
부분 결과는 다음과 같습니다.
애플리케이션 2: 클래스의 모든 속성 가져오기
The 호출 방법은 다음과 유사합니다.
실행 결과:
응용 프로그램 3: 클래스 생성자를 가져옵니다.
생성자는 유사하므로 다시 설명하지 않습니다.
애플리케이션 4: 클래스의 특정 메서드 가져오기
실행 결과는 다음과 같습니다. 두 가지 호출 방법의 결과는 동일합니다.
위는 개별 함수 목록일 뿐이며, 자세한 내용은 API 설명서에서 확인할 수 있습니다. //tool.oschina.net/apidocs/apidoc?api =jdk-zh
Reflection의 개념
글 마지막 부분에서 Reflection의 개념을 요약하고 생각은 숭고하다.
반성의 정의가 무엇인가요?
JAVA 리플렉션 메커니즘은 실행 중인 상태에서 모든 클래스에 대해 이 클래스의 모든 속성과 메서드를 알 수 있으며 이러한 종류의 동적 획득 및 호출을 호출할 수 있다는 것입니다. 객체 메소드 이 함수를 Java 언어의 반사 메커니즘이라고 합니다.
반성이 필요한가요?
"반사 메커니즘은 많은 Java 프레임워크의 초석입니다."
(1) xml 파일 또는 속성에 구성을 작성한 다음 xml의 내용 또는 Java 클래스의 속성을 구문 분석하고 문자열을 얻은 다음 리플렉션 메커니즘을 사용하여 특정 클래스의 클래스 인스턴스를 얻습니다. 이 문자열을 사용하면 매번 코드에 새로운 항목을 추가하거나 다른 작업을 수행할 필요 없이 동적으로 구성할 수 있습니다. 나중에 이를 변경하려는 경우 구성 파일을 직접 변경할 수 있으므로 코드 유지 관리가 매우 쉽습니다. 편리한.
(2) 때로는 특정 요구에 적응하기 위해 Java 클래스에서 다른 메서드를 직접 호출하는 것이 불가능할 수도 있습니다. 이 경우 리플렉션 메커니즘을 통해서도 달성할 수 있습니다.
반성의 단점?
반영된 코드가 일반 호출 코드보다 코드가 많고 성능도 느리다는 것을 코드에서도 볼 수 있으므로 반사 사용은 피해야 합니다. 이는 가위가 어디에 있는지 이미 알고 있다면 바늘과 실바느질 상자-가위의 경로를 거치지 않아도 되는 것과 같습니다.
반사 사용 기준은 무엇인가요?
반성 없이 완성할 수 있는 기능이라면 사용하지 않는 것이 가장 좋습니다.
php 중국어 웹사이트, 수많은 무료 Java 입문 튜토리얼, 온라인 학습을 환영합니다!
위 내용은 자바 리플렉션이 뭐야?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

TestHepdFinanotherAppTodeMineifTheissueiswithTheFileoredge.2

importjava.ioandjava.net.socketfori/oandsocketcommunication.2.createOcketObjectToConnectToThEserUsingHostNameAndport.3.usepritWriterTerndAviaOutputStreamandBufferEdERDERDERDEREADSERVERRSPONSSFROMINPUTSTREAM.4.USTERTRETOR-resto-restocoUtomati

컨테이너화 된 Java 응용 프로그램 : Dockerfile 생성, Eclipse-Temurin : 17-Jre-Alpine과 같은 기본 이미지를 사용하고 JAR 파일을 복사하고 시작 명령을 정의하고 DockerBuild를 통해 이미지를 빌드하고 Dockerrun과 함께 로컬로 실행하십시오. 2. 이미지를 컨테이너 레지스트리로 푸시하십시오. Dockertag를 사용하여 이미지를 표시하고 DockerHub 및 기타 레지스트리로 푸시하십시오. 먼저 dockerlogin에 로그인해야합니다. 3. Kubernetes에 배포 : 쓰기 배포 .yaml 배포를 정의하려면 복제본, 컨테이너 이미지 및 리소스 제한 수를 설정하고 Service.yaml을 작성하여 작성하십시오.

VSCODE에서는 바로 가기 키를 통해 패널과 편집 영역을 빠르게 전환 할 수 있습니다. 왼쪽 탐색기 패널로 이동하려면 Ctrl Shift E (Windows/Linux) 또는 CMD Shift E (Mac)를 사용하십시오. ctrl` 또는 esc 또는 ctrl 1 ~ 9를 사용하려면 편집 영역으로 돌아갑니다. 마우스 작동과 비교할 때 키보드 단축키는 더 효율적이며 인코딩 리듬을 방해하지 않습니다. 다른 팁으로는 다음과 같습니다.

runthewindowsupdateTrouBleShootErviaSettings> 업데이트 및 보안> 문제 해결을 해소 적으로 문제를 해결합니다 .2

JavaserializationConvertsanObject'sstateIntoAbytestreamforStorageOrtransmission, anddeserialization은 ThatStream.1. toenableserialization, aclassmustimplementtheserializableinterface.2.useObjectOutoutPutStreamToseAnobject, Savin

awhileloopinjavarepeatexecutescodeaslongasTheconditionistrue; 2. initializeacontrolvariablebarevereTeloop; 3. definephonditionusingabooleanexpression; 4.updateContrecontrolibarialinInsidethelooptopreventinfiniteLooping; 5.Useexamplass

Numpy는 Python의 과학 컴퓨팅을위한 핵심 라이브러리입니다. 선형 대수 작업을 처리하는 데 능숙하며 Numpy.linalg 모듈에서 효율적인 NDARRAY 어레이 및 기능을 제공합니다. 1. np.linalg.solve (a, b)를 사용하여 선형 방정식 시스템 ax = b를 해결하여 용액 벡터 x를 얻습니다. 2. 매트릭스 전위는 A.T를 통해 구현된다; 3. 매트릭스 곱셈은 np.dot (a, b) 또는@b에 사용될 수 있습니다. 4. 매트릭스 역 역수는 np.linalg.inv (a)에 의해 계산되며 행렬은 가역적이어야합니다. 5. 결정 요인은 np.linalg.det (a)에 의해 주어진다. 6. 고유 값과 고유 벡터는 np.linalg.eig (a)를 통해 얻어지고 고유 벡터가 정규화되었습니다.
