如果COM对象实现了接口,如何使用JIntegra检入Java?

如果COM对象实现了接口,如何使用JIntegra检入Java?,java,casting,Java,Casting,我正在与JIntegra java com bridge合作。 我有一个object类型的对象,它的真正coclass是未知的。 我需要检查该对象是否可以强制转换到特定的COM接口(它有一个由JIntegra生成的代理类)。如果代理类实现了一个(生成的)接口,您可以检查该对象是否是该接口的实例吗?调用代理上的queryInterface()。如果底层COM对象没有实现代理接口,它应该抛出异常。不,我不能,生成的代理类不遵循java约定。为了将一个对象从一个接口封装到另一个接口,我需要做一些事情,

我正在与JIntegra java com bridge合作。 我有一个object类型的对象,它的真正coclass是未知的。
我需要检查该对象是否可以强制转换到特定的COM接口(它有一个由JIntegra生成的代理类)。

如果代理类实现了一个(生成的)接口,您可以检查该对象是否是该接口的实例吗?

调用代理上的
queryInterface()
。如果底层COM对象没有实现代理接口,它应该抛出异常。

不,我不能,生成的代理类不遵循java约定。为了将一个对象从一个接口封装到另一个接口,我需要做一些事情,比如
ISomeInterface=new ISomeInterfaceProxy(someObject)
但此操作在方法调用时失败,而不是在创建时失败。更糟糕的是。。。如果使用扩展接口A和B的接口“C”,则会出现更奇怪的行为。“C”的代理将与任何只实现xor B的对象一起工作,并且在您找到未实现接口中的方法之前不会失败。吼叫声