Jython:检查Java对象类型
我在某个包下有两个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)内
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