미션이 불가능합니다. 임무가 불가능한 것 같습니다. 메서드의 스택을 통해 일부 데이터를 전달해야합니다.이 메서드는 수정할 수 없습니다 (마지막 하나만 수정할 수 있음). 예 : 여기메서드 수정없이 호출 스택을 통해 데이터 전달
SomeData someData; //not passed in method1
obj1.method1(...);
는
obj1 {
someReturnClass method1(...) {
...
obj2.method2(...);
...
}
}
obj2보다 및 방법 2가 objN.methodM에 도착하기 전에, 좀 더 메소드를 호출()으로 obj1 클래스 코드를입니다. 별도의 스레드로도 실행할 수 있습니다 (ThreadLocal이 도움이되지 않습니다). 이 스택을 매개 변수로 전달하지 않는 methodM 내부의 someData에 액세스해야합니다.
나는 예외와 이중 실행 방법을 통해 그것을 얻기 위해 몇 가지 개념을 가지고 있지만,보기 흉하게 보입니다.
someData를 methodM()에 전달하는 방법에 대한 아이디어가 있습니까?
명확해야 : 메서드 활성화 내부의 로컬 변수, 변경할 수없는 메서드 중 로컬 변수에 액세스해야한다는 것을 의미합니까? 스택에서 더 낮은 위치에 있다는 것을 알고 있습니까? – Marcin
기본적으로 (상대적으로) 정적 데이터가 필요합니다. 이것은 "싱글 톤 (singleton)", 일반적으로 주소 지정 가능한 객체의 인스턴스 필드, 스레드 로컬 변수 또는 다른 것들을 포함 할 수 있습니다. –
네, 싱글 톤에 대해서 생각했습니다. 그러나 내 방법으로 끝나는 여러 스택이 동시에 실행될 수 있습니다. – Oroboros102