我想通过本机 java 接口调用一个方法,该接口返回一个对象。
这是我的本地方法
public native Node getProjectionPoint(double lat, double lon);
Run Code Online (Sandbox Code Playgroud)
节点类
public class Node {
private String id;
private double latitude;
private double longitude;
}
Run Code Online (Sandbox Code Playgroud)
C头文件
JNIEXPORT jobject JNICALL Java_org_smartcar_serverdatainterface_shared_services_CppConnector_getProjectionPoint (JNIEnv *env, jobject obj, jdouble lat, jdouble lon);
Run Code Online (Sandbox Code Playgroud)
我如何创建一个对象并将其返回给java?
在java本机界面中提供
jclass class = (*env)->FindClass(env,"ClassName");
Run Code Online (Sandbox Code Playgroud)
和
jclass class = (*env)->GetObjectClass(env,"ClassName");
Run Code Online (Sandbox Code Playgroud)
我想知道这两种方法之间的区别,以及它如何通过使用类名来找到一个类,以及它可以为null的情况.
我正在遍历地图,该地图值类型是向量。我在地图中一一获取向量并使用 std::find() 方法搜索项目。
for(BoundWaysMap::const_iterator iterator = boundWays.begin(); iterator != boundWays.end(); iterator++)
{
string wayId = iterator->first;
std::vector<string> nodesRefCollection = iterator->second;
if(std::find(nodesRefCollection.begin(), nodesRefCollection.end(), id)!=nodesRefCollection.end())
{
std::string cont = "|" + wayId;
legsFrame.append(cont);
legsCount ++;
isFound = true;
}
}
Run Code Online (Sandbox Code Playgroud)
我想从 find 方法中获取找到的项目的索引。