mirror of https://github.com/kivy/pyjnius.git
Merge pull request #41 from amirouche/master
added support for Python Java class objects as parameter of java methods that takes Java Class object as parameter
This commit is contained in:
commit
383cdf5742
1
Makefile
1
Makefile
|
@ -12,4 +12,5 @@ tests: build_ext
|
|||
cd tests && javac org/jnius/MultipleMethods.java
|
||||
cd tests && javac org/jnius/SimpleEnum.java
|
||||
cd tests && javac org/jnius/InterfaceWithPublicEnum.java
|
||||
cd tests && javac org/jnius/ClassArgument.java
|
||||
cd tests && env PYTHONPATH=..:$(PYTHONPATH) nosetests -v
|
||||
|
|
|
@ -17,6 +17,7 @@ cdef void release_args(JNIEnv *j_env, list definition_args, jvalue *j_args, args
|
|||
|
||||
cdef void populate_args(JNIEnv *j_env, list definition_args, jvalue *j_args, args) except *:
|
||||
# do the conversion from a Python object to Java from a Java definition
|
||||
cdef JavaClassStorage jcs
|
||||
cdef JavaObject jo
|
||||
cdef JavaClass jc
|
||||
cdef int index
|
||||
|
@ -52,6 +53,9 @@ cdef void populate_args(JNIEnv *j_env, list definition_args, jvalue *j_args, arg
|
|||
elif isinstance(py_arg, JavaObject):
|
||||
jo = py_arg
|
||||
j_args[index].l = jo.obj
|
||||
elif isinstance(py_arg, MetaJavaClass):
|
||||
jcs = py_arg.__cls_storage
|
||||
j_args[index].l = jcs.j_cls
|
||||
elif isinstance(py_arg, (tuple, list)):
|
||||
j_args[index].l = convert_pyarray_to_java(j_env, argtype, py_arg)
|
||||
else:
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
package org.jnius;
|
||||
|
||||
|
||||
public class ClassArgument {
|
||||
public static String getName(Class klass) {
|
||||
return klass.toString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
import unittest
|
||||
from jnius.reflect import autoclass
|
||||
|
||||
class BasicsTest(unittest.TestCase):
|
||||
|
||||
def test_static_methods(self):
|
||||
ClassArgument = autoclass('org.jnius.ClassArgument')
|
||||
self.assertEquals(ClassArgument.getName(ClassArgument), 'class org.jnius.ClassArgument')
|
Loading…
Reference in New Issue