微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

哪个相当于 Java 的“isinstance”Python?

如何解决哪个相当于 Java 的“isinstance”Python?

我有一个程序来生成测试 API 的请求,代码的下一部分读取 JSON 以管理值的信息:

def recorre_llaves(self,dicc):
    campos = []
    for k in dicc.keys():
        if isinstance(dicc[k],dict):
            for e in self.recorre_llaves(dicc[k]):
                campos.append(e)
        elif isinstance(dicc[k],list):
            if isinstance(dicc[k][0],dict):
                for e in self.recorre_llaves(dicc[k][0]):
                    campos.append(e)
                pass
            else:
                campos.append(Campo(k,dicc[k][0]))
        else:
            campos.append(Campo(k,dicc[k]))
        pass
    return campos
    pass

程序遍历 JSON 并使用键和值创建新对象。现在我需要做同样的事情,但是使用 Java 并且我在使用“isinstance()”方法时遇到了问题,我想执行以下操作:

import com.fasterxml.jackson.databind.ObjectMapper;    
HashMap <String,Object> response = mapper.readValue(request,HashMap.class);    
HashMap.get("KEY").isinstance();

但它不起作用,你知道用 Java 做同样事情的方法吗?

解决方法

Python 中的

list 对应于 Java 中的 List(参见 javadoc of java.util.List)。
Python 中的 dict 对应于 Java 中的 Map(参见 javadoc of java.util.Map)。

Python 函数 isinstance 对应于 Java 关键字 instanceof

因此是 Python 线

if isinstance(dicc[k],dict):

会像这样用 Java 编写:

if (dicc.get(k) instanceof List)
,

instanceof 返回一个布尔值

Simple1 s=new Simple1();
System.out.println(s instanceof Simple1);//true

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。