Jython:检查Java对象类型

Jython:检查Java对象类型,java,python,jython,Java,Python,Jython,我在某个包下有两个Java类Foo和FooBar。这两个类都实现了接口FooIFC。我想从Jython脚本中查找实例的类型是Foo还是FooBar 我在IFC的一个基类(实现者)中有一个静态的getinstance() 我还尝试了isintance(FooIFC.getinstance(),Foo)。未找到提供错误名称的 instanceof给出预期的冒号错误 如何从python脚本中找到对象类型?python中没有instanceof操作符,而是isinstance(即isinstance)内

我在某个包下有两个Java类
Foo
FooBar
。这两个类都实现了接口FooIFC。我想从Jython脚本中查找实例的类型是
Foo
还是
FooBar

我在IFC的一个基类(实现者)中有一个静态的
getinstance()

我还尝试了
isintance(FooIFC.getinstance(),Foo)
。未找到提供错误名称的

instanceof
给出预期的冒号错误


如何从python脚本中找到对象类型?

python中没有
instanceof
操作符,而是
isinstance
(即isinstance)内置函数。因此:

from package import FooIFC
from package import Foo

if isinstance(FooIFC.getinstance(), Foo):
    print "Foo"
else:
    print "FooBar"

在Jython
中,您也可以尝试

从包导入
从包导入Foo
如果FooIFC.getClass().getSimpleName()=='Foo':
打印“Foo”
其他:
打印“FooBar”
示例代码:

将java.util.ArrayList导入为ArrayList
arr=ArrayList()
附件(10)
附件(20)
打印arr
打印“名称:”,arr.getClass().getName()
打印“简单名称:”,arr.getClass().getSimpleName()
如果arr.getClass().getName()='java.util.ArrayList':
打印“这是一个ArrayList”
如果arr.getClass().getSimpleName()=“ArrayList”:
打印“这是一个ArrayList”
输出:

当我尝试is实例(FooIFC.getinstance(),Foo)时,我得到一个未找到的方法错误
from package import FooIFC
from package import Foo

if isinstance(FooIFC.getinstance(), Foo):
    print "Foo"
else:
    print "FooBar"
> jython check_type.py
[10, 20]
Name: java.util.ArrayList
Simple Name: ArrayList
This is an ArrayList
This is an ArrayList