Если эти внутренние объекты представляют интерфейс для приложения, а не используются напрямую, адаптируйте их, а не преобразуйте их.
То есть, если у вас есть что-то вроде этого:
public class ThirdPartyClass { ... }
public interface InternalInterface { ... }
public class InternalClass { ... }
Internal foo(ThirdPartyClass thirdParty) {
InternalClass internal = new InternalClass();
// convert thirdPaty -> internal
return internal;
}
Тогда вместо этого сделайте что-то вроде этого:
public class ThirdPartyClass { ... }
public interface InternalInterface { ... }
public class InternalClass { ... }
public class ThirdPartyInternalAdapter implements InternalInterface {
private final ThirdPartyClass thirdParty;
public ThirdPartyInternalAdapter(ThirdPartyClass thirdParty) {
this.thirdParty = thirdParty;
}
// implement interface in terms of thirdParty
}
Из вашего вопроса не ясно, применимо ли это, но если это так, это может быть проще и эффективнее, чем прямое преобразование объекта в объект.