本文整理了Java中com.sun.jna.Function.invoke()
方法的一些代码示例,展示了Function.invoke()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Function.invoke()
方法的具体详情如下:
包路径:com.sun.jna.Function
类名称:Function
方法名:invoke
[英]Invoke the native function with the given arguments, returning the native result as an Object.
[中]使用给定参数调用本机函数,并将本机结果作为对象返回。
代码示例来源:origin: net.java.dev.jna/jna
/**
* Call the native function being represented by this object
*
* @param args
* Arguments to pass to the native function
*/
public void invoke(Object[] args) {
invoke(Void.class, args);
}
代码示例来源:origin: net.java.dev.jna/jna
/** Invoke the native function with the given arguments, returning the
* native result as an Object.
*/
public Object invoke(Class<?> returnType, Object[] inArgs) {
return invoke(returnType, inArgs, this.options);
}
代码示例来源:origin: net.java.dev.jna/jna
/** Convenience method for
* {@link #invoke(Class,Object[]) invokeObject(Object.class, args)}.
*/
public Object invokeObject(Object[] args) {
return invoke(Object.class, args);
}
代码示例来源:origin: net.java.dev.jna/jna
/** Convenience method for
* {@link #invoke(Class,Object[]) invoke(Pointer.class, args)}.
*/
public Pointer invokePointer(Object[] args) {
return (Pointer)invoke(Pointer.class, args);
}
代码示例来源:origin: net.java.dev.jna/jna
/** Convenience method for
* {@link #invoke(Class,Object[]) invoke(Void.class, args)}.
*/
public void invokeVoid(Object[] args) {
invoke(Void.class, args);
}
代码示例来源:origin: net.java.dev.jna/jna
Object invoke(Object[] args, Class<?> returnType, boolean allowObjects) {
return invoke(args, returnType, allowObjects, 0);
}
代码示例来源:origin: net.java.dev.jna/jna
/** Convenience method for
* {@link #invoke(Class,Object[]) invoke(Float.class, args)}.
*/
public float invokeFloat(Object[] args) {
return ((Float)invoke(Float.class, args)).floatValue();
}
/** Convenience method for
代码示例来源:origin: net.java.dev.jna/jna
/** Convenience method for
* {@link #invoke(Class,Object[]) invoke(Double.class, args)}.
*/
public double invokeDouble(Object[] args) {
return ((Double)invoke(Double.class, args)).doubleValue();
}
/** Convenience method for
代码示例来源:origin: net.java.dev.jna/jna
/** Convenience method for
* {@link #invoke(Class,Object[]) invoke(String.class, args)}
* or {@link #invoke(Class,Object[]) invoke(WString.class, args)}
* @param args Arguments passed to native function
* @param wide Whether the return value is of type <code>wchar_t*</code>;
* if false, the return value is of type <code>char*</code>.
*/
public String invokeString(Object[] args, boolean wide) {
Object o = invoke(wide ? WString.class : String.class, args);
return o != null ? o.toString() : null;
}
代码示例来源:origin: net.java.dev.jna/jna
/** Convenience method for
* {@link #invoke(Class,Object[]) invoke(Integer.class, args)}.
*/
public int invokeInt(Object[] args) {
return ((Integer)invoke(Integer.class, args)).intValue();
}
/** Convenience method for
代码示例来源:origin: net.java.dev.jna/jna
/** Convenience method for
* {@link #invoke(Class,Object[]) invoke(Long.class, args)}.
*/
public long invokeLong(Object[] args) {
return ((Long)invoke(Long.class, args)).longValue();
}
/** Convenience method for
代码示例来源:origin: net.java.dev.jna/jna
/** Invoke the native function with the given arguments, returning the
* native result as an Object.
*/
public Object invoke(Class<?> returnType, Object[] inArgs, Map<String, ?> options) {
Method invokingMethod = (Method)options.get(OPTION_INVOKING_METHOD);
Class<?>[] paramTypes = invokingMethod != null ? invokingMethod.getParameterTypes() : null;
return invoke(invokingMethod, paramTypes, returnType, inArgs, options);
}
代码示例来源:origin: net.java.dev.jna/jna
/** Chain invocation to the native function. */
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if (Library.Handler.OBJECT_TOSTRING.equals(method)) {
String str = "Proxy interface to " + function;
Method m = (Method)options.get(Function.OPTION_INVOKING_METHOD);
Class<?> cls = findCallbackClass(m.getDeclaringClass());
str += " (" + cls.getName() + ")";
return str;
} else if (Library.Handler.OBJECT_HASHCODE.equals(method)) {
return Integer.valueOf(hashCode());
} else if (Library.Handler.OBJECT_EQUALS.equals(method)) {
Object o = args[0];
if (o != null && Proxy.isProxyClass(o.getClass())) {
return Function.valueOf(Proxy.getInvocationHandler(o) == this);
}
return Boolean.FALSE;
}
if (Function.isVarArgs(method)) {
args = Function.concatenateVarArgs(args);
}
return function.invoke(method.getReturnType(), args, options);
}
代码示例来源:origin: net.java.dev.jna/jna
return f.handler.invoke(proxy, method, inArgs);
return f.function.invoke(method, f.parameterTypes, method.getReturnType(), inArgs, f.options);
代码示例来源:origin: net.java.dev.jna/jna
Object result = invoke(args, nativeReturnType, allowObjects, fixedArgs);
代码示例来源:origin: org.elasticsearch/jna
/** Convenience method for
* {@link #invoke(Class,Object[]) invokeObject(Object.class, args)}.
*/
public Object invokeObject(Object[] args) {
return invoke(Object.class, args);
}
代码示例来源:origin: org.elasticsearch/jna
/**
* Call the native function being represented by this object
*
* @param args
* Arguments to pass to the native function
*/
public void invoke(Object[] args) {
invoke(Void.class, args);
}
代码示例来源:origin: org.elasticsearch/jna
/** Convenience method for
* {@link #invoke(Class,Object[]) invoke(Long.class, args)}.
*/
public long invokeLong(Object[] args) {
return ((Long)invoke(Long.class, args)).longValue();
}
/** Convenience method for
代码示例来源:origin: org.netbeans.api/org-jruby
public final IRubyObject invoke(Ruby runtime, Function function, Object[] args) {
function.invoke(args);
return runtime.getNil();
}
public static final FunctionInvoker INSTANCE = new VoidInvoker();
代码示例来源:origin: net.java.dev.jna/jna-platform
protected Object _invokeNativeObject(int vtableId, Object[] args, Class<?> returnType) {
Pointer vptr = this.getPointer().getPointer(0);
// we take the vtable id and multiply with the pointer size (4 bytes on
// 32bit OS)
Function func = Function.getFunction(vptr.getPointer(vtableId
* Native.POINTER_SIZE));
return func.invoke(returnType, args);
}
内容来源于网络,如有侵权,请联系作者删除!