Java에서 IN OUT 또는 OUT 매개 변수를 작성하는 방법



0 Answers

Java는 인수로 전달한 모든 것을 복사합니다. 원시적 인 내부 메소드를 전달하면 해당 원시 형의 사본을 가지며 수정하지 않으면 메소드 외부의 실제 변수에 영향을 미칩니다. 객체를 전달하면 실제로 원본 객체를 참조하는 참조 사본을 전달합니다. 이는 참조를 가리키는 객체의 상태를 수정하여 메소드를 호출 한 무언가의 컨텍스트에 수정 사항을 전파하는 방법입니다. 자세한 내용보기 : Java Pass by Value 또는 Reference?

Question

PL / SQL (또는 다른 많은 언어)에서는 프로 시저에서 리턴 된 IN OUT 또는 OUT 매개 변수를 가질 수 있습니다. 어떻게하면 Java에서 비슷한 것을 얻을 수 있습니까?

나는이 속임수를 안다.

public void method(String in, String[] inOut, String[] inOut2) {
  inOut[0] = in;
}

in 매개 변수는 IN 매개 변수를 나타내고 inOut 매개 변수는 리턴 값을 보유 할 수 있습니다. 규약에 따르면 String[] inOutinOut.length == 1 의 배열입니다.

그건 좀 어색해.

답변 피드백 : 다른 트릭은 다음과 같습니다.

  • holder / wrapper 클래스를 사용하지만 새로운 유형, 콜백 등을 소개하고 싶지는 않습니다.
  • 반환 값 : 일반적인 해결책을 원합니다. 즉, 여러 개의 IN OUT 매개 변수가 포함 된 것입니다.
  • 반환 값으로 IN OUT 매개 변수에 대한 래퍼 : 그것은 실행 가능한 옵션이지만 래퍼가 어떻게 든 생성되어야하므로 여전히 좋지 않습니다.

누구든지 이것을 일반적으로 달성하기위한 더 좋은 방법을 알고 있습니까? 일반적인 해결책이 필요한 이유는 데이터베이스 스키마에서 PL / SQL로부터 편의 소스 코드를 생성하기 때문입니다.




Related