저자가 공개하지 않기로 결정했기 때문에 실제 질문에 대답 할 수 없습니다 (이 방법이 노출되지 않는 이유는 무엇입니까?).
그러나 귀하의 질문에 따라 귀하는 다소 이상한 동기화 계획이 있다고 생각합니다. 내 이해에서 당신은 동기화를 위해 동등한 객체의 정식 표현을 얻기 위해 그것을 호출하려고 시도하고 있습니다. 제가 그 질문에 대한 제 의견에 언급했듯이, 이것은 정말로 나쁜 생각처럼 들립니다.
더 나은 접근 방법은 이러한 주요 개체를 동기화하는 방법과 이유를 다시 생각해보고 동기화를보다 명확하고 높은 수준으로, 또는 다른 방법을 사용하여보다 명확하고 더 건전하게 재 작업하는 것입니다.
다른 사용자가 자신의 의견을보다 명확하게 구현할 수 있도록이 동기화 작업을 수행하려는 코드 스 니펫을 게시하면 도움이 될 수 있습니다. 여기에 실제로 달성하려는 경우 실제로는 스레드 안전 맵 클래스 (예 : ConcurrentHashMap)를 사용하는 것이 좋습니다.
편집 : How To Ask Questions The Smart Way을보고, 특히 이것이 결점의 고전적인 예입니다. 당신의 전반적인 디자인이 약간 떨어져서 다른 방향으로 나아갈 필요가있을 것 같습니다; 그래서이 특정 문제에 얽매이지 만 큰 문제의 증상입니다. 우리에게보다 폭 넓은 맥락을 제공하면 전반적인 답변이 훨씬 더 잘 전달됩니다.
당신은 반사에 의해 그것을 얻을 수 있고, 다른 방법이 없다면 여전히 사용합니다. – Geo
논리적으로 같음 = 같음 메서드를 덮어 썼습니까? HashMap은 항상 ==가 아닌 equals를 사용합니다. 변경 가능한 개체를 키 클래스로 사용하는 것은 일반적으로 권장되지 않습니다. – dmeister
@ Geo : 나는 리플렉션을 사용하여 동기화 할 객체를 얻는 것에 대해 모호합니다. 부분적으로는 성능 문제가 있지만 주로 상수가 아닌 객체에 대한 명시 적 동기화가 어쨌든 어려울 수 있으므로 리플렉션을 통해 해당 참조를 불투명하게 얻을 때 신경 쓰지 마세요. 유지 보수를 악몽으로 만드는 것은 이해하기 쉽고, 디버깅하기가 쉽지 않습니다. –