Android NDK - 如何强制转换对象类

时间:2017-08-03 04:17:07

标签: android c++ android-ndk

我的要求非常简单。

Java:

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

我想在NDK / C ++中实现相同的目标。

jmethodID openConnMethod = env->GetMethodID(URLclass,"openConnection","()Ljava/net/URLConnection;");

jobject urlconn = env->CallObjectMethod(URLObject, openConnMethod);

如何将此URLConnection对象转换为HttpURLConnection对象?

1 个答案:

答案 0 :(得分:3)

你不需要。转换不会改变对象的实际类型,它只是让你将它作为一个不同的类引用它(在你的例子中,url.open返回一个HttpUrlConnection。如果它不是cast会抛出一个ClassCastException。类型不会改变你只是通过一个更具体的类型来引用它。在ndk世界中,您将每个java对象称为jobject。因此,从来没有必要施展它们。