本文整理了Java中com.sun.jna.Native.findDirectMappedClass()
方法的一些代码示例,展示了Native.findDirectMappedClass()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Native.findDirectMappedClass()
方法的具体详情如下:
包路径:com.sun.jna.Native
类名称:Native
方法名:findDirectMappedClass
[英]Find the nearest enclosing class with native methods.
[中]使用本机方法查找最近的封闭类。
代码示例来源:origin: net.java.dev.jna/jna
/** Find the nearest enclosing class with native methods. */
static Class<?> findDirectMappedClass(Class<?> cls) {
Method[] methods = cls.getDeclaredMethods();
for (Method m : methods) {
if ((m.getModifiers() & Modifier.NATIVE) != 0) {
return cls;
}
}
int idx = cls.getName().lastIndexOf("$");
if (idx != -1) {
String name = cls.getName().substring(0, idx);
try {
return findDirectMappedClass(Class.forName(name, true, cls.getClassLoader()));
} catch(ClassNotFoundException e) {
// ignored
}
}
throw new IllegalArgumentException("Can't determine class with native methods from the current context (" + cls + ")");
}
代码示例来源:origin: net.java.dev.jna/jna
/**
* When called from a class static initializer, maps all native methods
* found within that class to native libraries via the JNA raw calling
* interface.
* @param libName library name to which functions should be bound
*/
public static void register(String libName) {
register(findDirectMappedClass(getCallingClass()), libName);
}
代码示例来源:origin: net.java.dev.jna/jna
/** Remove all native mappings for the calling class.
Should only be called if the class is no longer referenced and about
to be garbage collected.
*/
public static void unregister() {
unregister(findDirectMappedClass(getCallingClass()));
}
代码示例来源:origin: net.java.dev.jna/jna
/**
* When called from a class static initializer, maps all native methods
* found within that class to native libraries via the JNA raw calling
* interface.
* @param lib native library to which functions should be bound
*/
public static void register(NativeLibrary lib) {
register(findDirectMappedClass(getCallingClass()), lib);
}
代码示例来源:origin: org.elasticsearch/jna
/** Find the nearest enclosing class with native methods. */
static Class<?> findDirectMappedClass(Class<?> cls) {
Method[] methods = cls.getDeclaredMethods();
for (Method m : methods) {
if ((m.getModifiers() & Modifier.NATIVE) != 0) {
return cls;
}
}
int idx = cls.getName().lastIndexOf("$");
if (idx != -1) {
String name = cls.getName().substring(0, idx);
try {
return findDirectMappedClass(Class.forName(name, true, cls.getClassLoader()));
} catch(ClassNotFoundException e) {
// ignored
}
}
throw new IllegalArgumentException("Can't determine class with native methods from the current context (" + cls + ")");
}
代码示例来源:origin: org.elasticsearch/jna
/**
* When called from a class static initializer, maps all native methods
* found within that class to native libraries via the JNA raw calling
* interface.
* @param libName library name to which functions should be bound
*/
public static void register(String libName) {
register(findDirectMappedClass(getCallingClass()), libName);
}
代码示例来源:origin: org.elasticsearch/jna
/** Remove all native mappings for the calling class.
Should only be called if the class is no longer referenced and about
to be garbage collected.
*/
public static void unregister() {
unregister(findDirectMappedClass(getCallingClass()));
}
代码示例来源:origin: org.elasticsearch/jna
/**
* When called from a class static initializer, maps all native methods
* found within that class to native libraries via the JNA raw calling
* interface.
* @param lib native library to which functions should be bound
*/
public static void register(NativeLibrary lib) {
register(findDirectMappedClass(getCallingClass()), lib);
}
内容来源于网络,如有侵权,请联系作者删除!