나는 다음과 같은 상황이 있습니다형식 정보를 사용할 수 없을 때 개인 내부 클래스에 캐스팅하는 방법?
// In some library code
public class A
{
private class B
{
Object value;
}
}
// In my code
Object o;
// o is initialized to an instance of B somehow
// ...
B bInstance = (B) o;
나는 B의 유형에 액세스 할 수없는 주어진 B 를 입력 개체를 캐스팅 가겠어요 어떻게?
더 자세히 설명하려면 A는 이 아니며 내 코드 기반의 일부분은입니다. 그것은 도서관의 일부입니다. 유형 정보가 표시되지 않기 때문에 유형 B라는 것을 알고있는 객체에 액세스 할 수 있지만이를 (예 : IDE에서) 변환 할 수 없습니다. 컴파일 오류입니다. 상황은 매우 제한적입니다. 리플렉션을 사용하여이를 달성하는 것이 가능할 수 있다고 생각하지만 특정 패러다임을 사용한 경험이 많지 않습니다. 이 주위에 어떤 방법이 있습니까? 커뮤니티가 제공 할만한 의견을 보내 주시면 감사하겠습니다.
개인 내부 클래스 사용에 대한 한 가지 사실은 다른 사람이 사용하지 못하도록하는 것입니다. 너 왜이쪽으로가는거야? 손에 무슨 문제가 있습니까? –
'B' 인스턴스에서 호출 할 방법이 있습니까? 당신은 단지'toString()'을 사용할 수도 있고, 리플렉션을 사용하여 인스턴스를 통해 B에서 임의의 메소드를 호출 할 수도 있습니다. –
올바르게 작동합니다. 나는 당신이 그것에 대한 참조를 가지고 있기 때문에 B가 어떤 인터페이스를 구현한다고 가정한다. 인터페이스 참조가 충분하지 않다는 것을 당신은 무엇을하려고합니까? –