判断Object中数据类型(已知类型、未知类型))

简介: 判断Object中数据类型(已知类型、未知类型))

一、已知数据类型

接收到的数据类型为Object,如果知道数据的类型可以使用ObjectMapper进行处理,得到里面的参数。

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.HashMap;
public class Test02 {
    public static void main(String[] args) throws IOException {
        String str = "{\"one\":\"yes\",\"key\":\"value\"}";
        ObjectMapper mapper = new ObjectMapper();
        HashMap hashMap = mapper.readValue(str, HashMap.class);
        System.out.println(hashMap.toString());
    }
}

二、未知数据类型

假如,不清楚数据类型,或者接收到的数据类型有很多种,这样就需要对接收到的数据,按类型进行分类处理,这就要求对接收到的数据类型进行判断。

方法一、equals进行判断

HashMap<String, String> hashMap = new HashMap<>();
Object object = (Object)hashMap;
if (HashMap.class.equals(object.getClass())){
    System.out.println("true");
}

方法二、instanceof进行判断

测试一个对象obj是否为一个类的实例;obj必须为引用类型,不能是基本类型;obj为null,则返回false。

HashMap<String, String> hashMap = new HashMap<>();
Object obj = (Object)hashMap;
if (obj instanceof HashMap){
    System.out.println("True");
}

方法三、通过class获取类型

HashMap<String, String> hashMap = new HashMap<>();
Object object = (Object)hashMap;
String simpleName = object.getClass().getSimpleName();
if ("HashMap".equals(simpleName)){
    System.out.println("True");
}
目录
相关文章
|
4月前
|
Python
通过 type 和 object 之间的关联,进一步分析类型对象
通过 type 和 object 之间的关联,进一步分析类型对象
89 3
|
7月前
|
SQL 安全 Java
Android经典面试题之Kotlin中object关键字实现的是什么类型的单例模式?原理是什么?怎么实现双重检验锁单例模式?
Kotlin 单例模式概览 在 Kotlin 中,`object` 关键字轻松实现单例,提供线程安全的“饿汉式”单例。例如: 要延迟初始化,可使用 `companion object` 和 `lazy` 委托: 对于参数化的线程安全单例,结合 `@Volatile` 和 `synchronized`
85 6
|
8月前
|
Java
Object当中的object类型
Object当中的object类型
|
9月前
|
前端开发 Java 编译器
Object c/swift,java,c/c++在32位和64位各个平台上基本数据类型 所占有的字节数
Object c/swift,java,c/c++在32位和64位各个平台上基本数据类型 所占有的字节数
60 0
|
9月前
|
JavaScript 前端开发 Java
编程笔记 html5&css&js 073 JavaScript Object数据类型
编程笔记 html5&css&js 073 JavaScript Object数据类型
【TS】关于v-for数组对象遍历以及在页面上使用提示object类型的问题解决
【TS】关于v-for数组对象遍历以及在页面上使用提示object类型的问题解决
220 0
|
9月前
|
JavaScript 前端开发
js基础语法:包括变量声明、数据类型(Number, String, Boolean, Null, Undefined, Symbol, Object)、运算符、流程控制语句(if...else, switch, for, while, do...while)等。具体案例使用演示
js基础语法:包括变量声明、数据类型(Number, String, Boolean, Null, Undefined, Symbol, Object)、运算符、流程控制语句(if...else, switch, for, while, do...while)等。具体案例使用演示
96 1
|
9月前
|
Java 数据库
Java【问题记录 04】时间戳类型字符串{Timestamp@15601}2021-07-14 18:56:53.0变成带T的Object类型2021-07-14T10:56:53.000+0000
Java【问题记录 04】时间戳类型字符串{Timestamp@15601}2021-07-14 18:56:53.0变成带T的Object类型2021-07-14T10:56:53.000+0000
61 0
|
9月前
|
JavaScript 前端开发
JavaScript基础语法:包括变量声明、数据类型(Number, String, Boolean, Null, Undefined, Symbol, Object)、运算符、流程控制语句(if...else, switch, for, while, do...while)等。
JavaScript基础语法:包括变量声明、数据类型(Number, String, Boolean, Null, Undefined, Symbol, Object)、运算符、流程控制语句(if...else, switch, for, while, do...while)等。
77 0
|
JavaScript 编译器
TypeScript-never和object类型、类型断言概述
TypeScript-never和object类型、类型断言概述
78 0