Java 전달 및 콜백 메커니즘에 대한 코드 예제 공유 설명
1. 원본 유형 매개 변수 전달
public void badSwap(int var1, int var2)
{
int temp = var1;
var1 = var2;
var2 = temp;
}
2. 참조 유형 매개변수 전달
public void tricky(Point arg1, Point arg2)
{
arg1.x = 100;
arg1.y = 100;
Point temp = arg1;
arg1 = arg2;
arg2 = temp;
}
public static void main(String [] args)
{
Point pnt1 = new Point(0,0);
Point pnt2 = new Point(0,0);
System.out.println("X: " + pnt1.x + " Y: " +pnt1.y);
System.out.println("X: " + pnt2.x + " Y: " +pnt2.y);
System.out.println(" ");
tricky(pnt1,pnt2);
System.out.println("X: " + pnt1.x + " Y:" + pnt1.y);
System.out.println("X: " + pnt2.x + " Y: " +pnt2.y);
}
이 두 프로그램을 실행하면 알 수 있을 거라고 믿습니다: Java manipulates objects'by reference,'but it passes object references to methods'by value.java 리셋 메커니즘
spring은 자바 리셋 메커니즘을 대량으로 사용했는데 다음은 자바 리셋에 대해 간단하게 소개한다.
한마디로 리셋은 일종의 양방향 호출 모델이다. 무슨 뜻이냐. 즉, 피호출자가 호출될 때도 상대방을 호출하는 것을 리셋이라고 한다.“If you call me, i will call back”.
다음 콜백 메커니즘에 대한 예를 보십시오.
커넥터 CallBackInterface:
public interface CallBackInterface {
void save();
}
클래스 ClassB:
public class ClassB implements CallBackInterface {
public void save() {
System.out.println(" !");
}
//
public void add()
{
// ClassA ClasssB ClassB save
new ClassA().executeSave(new ClassB());
}
}
클래스A:
public class ClassA {
public void executeSave(CallBackInterface callBackInterface)
{
getConn();
callBackInterface.save(); //you call me
realse();
}
public void getConn()
{
System.out.println(" !");
}
public void realse()
{
System.out.println(" !");
}
}
더욱 고전적인 리셋 함수 사용에 대한 예 (자바 익명 클래스 사용)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.