- Notifications
You must be signed in to change notification settings - Fork 15
Open
Milestone
Description
It would be nice to support something like this:
>>>deffib(n): ... ifn==0orn==1: ... return1; ... returnfib(n-1) +fib(n-2) ... >>>importscyjava>>>jfib=scyjava.convert.to_java(fib) >>>print(type(jfib)) <class'scyjava.convert._convert.FunctionFromPython'>>>>Where FunctionFromPython is:
fromjniusimportPythonJavaClass, java_methodclassFunctionFromPython(PythonJavaClass): __javainterfaces__= ['java/util/function/Function'] def__init__(self, function): self.function=function@java_method('(Ljava/lang/Object;)Ljava/lang/Object;')defapply(self, t): returnself.function(t)Then anything operating on a Java Function can accept a Python function with appropriate conversion. For example:
jlist=ij.py.to_java([5, 4, 3, 2, 1]) fibList=jlist.stream().map(jfib).toArray() print(f'{type(fibList)}') print(fibList)Prints:
<class 'list'> [8, 5, 3, 2, 1] 😎
oeway and karlduderstadt
Metadata
Metadata
Assignees
Labels
No labels