精华内容
下载资源
问答
  • Java中Object转Map类型,Map转Object类型

    千次阅读 2020-07-31 09:40:11
    在使用Java编程过程,经常会遇到获取的数据Object类型,但只是以这种方式传输,实质还是Map类型,此时就涉及到两种类型的相互转换。 强制转换 在类型转换工程,常见的转换方式为强制转换。如(String)map.get...

    前言

    在使用Java编程过程中,经常会遇到获取的数据为Object类型,但只是以这种方式传输,实质还是Map类型,此时就涉及到两种类型的相互转换。

    强制转换

    在类型转换工程中,常见的转换方式为强制转换。如(String)map.get(key),(int)map.get(key)等。但是如果接收的类型为Map,此时强转(Map<String, Object>) obj则会报出警告。

    治标不治本

    很多人会使用@SuppressWarnings(“unchecked”)来解决编辑器中的警告,好看是好看了。但是这用来告诉编译器忽略警告,而警告却实实在在的存在。项目的风险还是存在。

    方法一

    可以使用java.lang.reflect.Field类完成ObjMap之间的相互转换.

    • ObjectMap类型
    //Object转Map
    public static Map<String, Object> getObjectToMap(Object obj) throws IllegalAccessException {
        Map<String, Object> map = new HashMap<String, Object>();
        Class<?> cla = obj.getClass();
        Field[] fields = cla.getDeclaredFields();
        for (Field field : fields) {
            field.setAccessible(true);
            String keyName = field.getName();
            Object value = field.get(obj);
            if (value == null)
                value = "";
            map.put(keyName, value);
        }
        return map;
    }
    
    • MapObject类型
    //Map转Object
    public static Object getMapToObject(Map<Object, Object> map, Class<?> cla) throws Exception {
        if (map == null)
            return null;
        Object obj = cla.newInstance();
        Class<?> cla = obj.getClass();
        Field[] fields = cla.getDeclaredFields();
        for (Field field : fields) {
            int mod = field.getModifiers();
            if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
                continue;
            }
            field.setAccessible(true);
            if (map.containsKey(field.getName())) {
                field.set(obj, map.get(field.getName()));
            }
        }
        return obj;
    }
    

    通过Field类进行数据类型的转换。

    方法二

    通过BeanUtils工具类进行转换

    //1、map转换为object
    
    public static Object mapToObject(Map<String, Object> map, Class<?> cla)
        throws Exception {
    	if (map == null) 
    		return null;
      Object obj = clas.newInstance();
    	org.apache.commons.beanutils.BeanUtils.populate(obj, map);
    	return obj;
    }
    
    //2、object转换为map
    public static Map<?, ?> objectToMap(Object obj) {
    	if (obj == null) 
    		return null;
    	return new org.apache.commons.beanutils.BeanMap(obj);
    }
    

    总结

    最后,通过调用这两个方法就可以实现Object转Map类型,Map转Object类型。

    展开全文
  • Java中Object转换为List类型

    万次阅读 2020-05-19 15:57:33
    解析数据的时候map.get(key)所获取到的类型Object。此时,需要转换成我们所需要的数据类型进行使用。 类型转换 在类型转换工程,常见的转换方式为强制转换。如(String)map.get(key),(int)map.get(key)等。在是...

    前言

    在很多项目编写过程中会使用Map<?>类型来进行参数的传递。为了能够让更多的类型放入value中,实例化的类型往往是Map<String, Object>来存放数据。
    解析数据的时候map.get(key)所获取到的类型为Object。此时,需要转换成我们所需要的数据类型进行使用。

    类型转换

    在类型转换工程中,常见的转换方式为强制转换。如(String)map.get(key),(int)map.get(key)等。在是如果接收的类型为List,此时强转(List<String>) obj则会报出警告。编译会提示Unchecked cast: 'java.lang.Object' to 'java.util.List<java.lang.String>'编译器的认为强制类型转换并未做类型校验,强制转换并不安全,可能会抛出异常导致程序崩溃。

    治标不治本

    很多人会使用@SuppressWarnings("unchecked")来解决编辑器中的警告,好看是好看了。但是这用来告诉编译器忽略警告,而警告却实实在在的存在。项目的风险还是存在。

    转换方法

    这时候可以自己写一个工具类,用来对接收到的Object类型进行转换。以List<String>类型为例。

    public class HAUtils{
    	public static List<String> objToList(Object obj) throw CoreException{
    		List<String> result = new ArrayList<String>();
        	if (obj instanceof ArrayList<?>) {
    	        for (Object o : (List<?>) obj) {
    	            result.add(String.class.cast(o));
    	        }
            }
            return result;
    	}
    }
    

    其中: Java中把一个<?>称为类型通配符。为了表示各种泛型List的父类,可以使用List<?>,意思是元素类型未知的List,它的元素类型可以匹配任何类型。此时只能够get()不能进行add()操作。

    当然,也可以根据这种方法写一个通配类型的转换。

    public class HAUtils{
    	public static <T> List<T> objToList(Object obj, Class<T> cla) throw CoreException{
    		List<T> list = new ArrayList<T>();
        	if (obj instanceof ArrayList<?>) {
    	        for (Object o : (List<?>) obj) {
    	            list.add(cla.cast(o));
    	        }
    	        return list;
            }
            return null;
    	}
    }
    

    要是为list类型就返回实际参数,要是不是就返回空,当然也可以写自己需要的抛错机制。

    使用

    直接调用方法即可。

    HAUtils ha = new HAUtils();
    List<String> = HAUtils.objToList(obj,String.class);
    

    传入String.class,或者int.class
    以上。

    一句话提示:int.class = Integer.TYPE !=Integer.class

    具体的解释可以自行百度。

    展开全文
  • Object [] parg = {input , //测试数据 "F:\\shuju\\model.txt... 我把tuple类型的数据input和String类型的数据同时放在object数组,现在我要用数组的input,我怎么能把object类型数据强制转换为tuple类型?
  • java中如何判断Object对象类型数据

    千次阅读 2020-10-29 10:17:49
    Object param = params.get(i); if (param instanceof Integer) { int value = ((Integer) param).intValue(); prepStatement.setInt(i + 1, value); } else if (param instanceof String) { String s = ...

    Object param = params.get(i);
       if (param instanceof Integer) {
        int value = ((Integer) param).intValue();
        prepStatement.setInt(i + 1, value);
       } else if (param instanceof String) {
        String s = (String) param;
        prepStatement.setString(i + 1, s);
       } else if (param instanceof Double) {
        double d = ((Double) param).doubleValue();
        prepStatement.setDouble(i + 1, d);
       } else if (param instanceof Float) {
        float f = ((Float) param).floatValue();
        prepStatement.setFloat(i + 1, f);
       } else if (param instanceof Long) {
        long l = ((Long) param).longValue();
        prepStatement.setLong(i + 1, l);
       } else if (param instanceof Boolean) {
        boolean b = ((Boolean) param).booleanValue();
        prepStatement.setBoolean(i + 1, b);
       } else if (param instanceof Date) {
        Date d = (Date) param;
        prepStatement.setDate(i + 1, (Date) param);
       }

    展开全文
  • java中Object转BigDecimal类型工具类

    千次阅读 2021-01-22 17:32:52
    最近操作数据库,会获取到BigDecimal类型的数据,但是通过mybatis拿到的数据或者从数据总线拿到的数据一般都以Object类型储存,这时需要进行类型转换。因此写了一个Object转BigDecimal类型转换用工具类。 注意点 ...

    前言

    最近操作数据库,会获取到BigDecimal类型的数据,但是通过mybatis拿到的数据或者从数据总线拿到的数据一般都以Object类型储存,这时需要进行类型转换。因此写了一个Object转BigDecimal类型转换用工具类。

    注意点

    object类型转换主要在意的就是类型的确定,在转换之前通过instanceof关键字来比对数据类型,确认之后进行针对性转换。
    常见的类型有:BigDecimal,String,BigInteger,Number;
    工具类编写如下

    源码

    package action;
    
    import java.math.BigDecimal;
    import java.math.BigInteger;
    
    public class TestUtils {
    	
    	/**
         * Object转BigDecimal类型
         *
         * @param value 传入Object值
         * @return 转成的BigDecimal类型数据
         */
        public static BigDecimal ToBigDecimal(Object value) {
            BigDecimal bigDec = null;
            if (value != null) {
                if (value instanceof BigDecimal) {
                	bigDec = (BigDecimal) value;
                } else if (value instanceof String) {
                	bigDec = new BigDecimal((String) value);
                } else if (value instanceof BigInteger) {
                	bigDec = new BigDecimal((BigInteger) value);
                } else if (value instanceof Number) {
                	bigDec = new BigDecimal(((Number) value).doubleValue());
                } else {
                    throw new ClassCastException("Can Not make [" + value + "] into a BigDecimal.");
                }
            }
            return bigDec;
        }
    
    }
    
    

    BigDecimal类型的加减乘除及大小比对

    在使用BigDecimal类型进行加减乘除计算的方法也是需要注意的,也可写入BigDecimal的工具类中,详见Java中BigDecimal类型的加减乘除及大小比对(https://blog.csdn.net/jerrygaoling/article/details/113626931),其中对BigDecimal类型运算差别进行了详细的比对。

    展开全文
  • Java中Object

    万次阅读 多人点赞 2019-05-11 14:54:16
    Object作为所有类的父类,是面向对象学习最重要的一个类。Object类是java默认的提供的一个类,Object类是所有类的父类,也就是说任何一个类的定义的时候如果没有明确的继承一个父类的话,那么它就是Object的子类
  • Java中Object转换为int类型或String类型

    千次阅读 2018-04-13 09:35:43
    一、判断Object类型 下面是截取的一个判断Objec的类型,然后给Excel的单元格设置类型和添加值的操作: obj instanceof 类型 Object obj = entityMap.get(j); if (obj instanceof Integer) { cell....
  • 基本数据类型Object之间是没有关系的 基本数据类型的包装类 例如int 的包装类Integer的父类则是Object public class Test { public static void main(String[] args){ int a = 12; swap(a); }public static ...
  • java中判断Object对象类型

    千次阅读 2017-03-22 11:22:51
    Object param = params.get(i);  if (param instanceof Integer) {  int value = ((Integer) param).intValue();  prepStatement.setInt(i + 1, value);  } else if (param instanceof String) {  
  • Java技术-将java中Map类型数据转化为json数据并以Ajax形式返回 一、自定义工具类(简单易用)-下面是我写的一个简单的工具类 package com.test.util; import java.io.IOException; import java.util.Map; import ...
  • JavaScript数据类型 - Object类型

    千次阅读 2020-09-01 10:20:25
    而创建Object类型的实例并为其添加属性和方法,就可以创建自定义对象,如下所示: var o = new Object(); 这个语法与Java中创建对象的语法相似,但在JavaScript,如果不给构造函数传递参数,则可以省略后面的...
  • Java object类型转换为int类型

    千次阅读 2015-08-11 10:41:35
    在struts1的action类设置了String类型的变量,int类型的变量,把他们放在request,在jsp页面获取的时候object类型装换位int类型,(Integer)request.getAttribute("")没错,但是同样的方式转换String类型的变量的...
  • java日期格式的Object类型转换成String类型的方法 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 转换思路: * 当遇到从...
  • 基础34 ElasticSearch mapping复杂数据类型以及object类型数据分布式实战(干货)spring cloud 实战(干货)mybatis 实战(干货)spring boot 实战(干货)React 入门实战(干货)构建小型互联网企业架构(干货)...
  • 如上图,有一个Object数组,数组每个object又是一个个的key-value类型,想要获取key对应的value值,尝试了下强转,一直报错。然后尝试了下如下思路(通过反射),成功的解决了我的问题。 /** * 单个对象的某个...
  • MySQL的字段类型对应于Java对象数据类型

    千次阅读 多人点赞 2021-03-03 14:50:53
    还在纠结javaType和jdbcType?MySQL数据类型对应Java什么类型?JdbcType类型Java对象有什么对应关系?数据库类型的Integer是对应int还是对应Integer?本文带你一探究竟!
  • byte:Java中最小的数据类型,在内存占1个字节(8 bit),取值范围-128~127,默认值0 short:短整型,2个字节(16 bit),取值范围-32768~32717,默认值0 int:整型,用于存储整数,在内存占4个字节,取值...
  • Java基础:Java Date数据类型

    万次阅读 2018-08-14 20:06:26
    Java数据类型中Date数据类型在处理一些日常应用问题常常被人们使用。  然而在使用过程许多人却没有真正的去了解有关于Java 数据类型中Date数据类型。  通常在这使用某一种数据类型过程并不一定就会有哦相应...
  • java的容器可以放基本的数据类型,但是是以包装类的形式,如int 在 容器是先包装成Integer,再转变成Object存放。 集合也可以放类的实例化对象。任何一种数据类型或者对象放进容器后都会失去原有的类型,...
  • java中引用数据类型有哪些?

    万次阅读 多人点赞 2016-07-18 09:45:37
    Java中有俩种数据类型,其中主要有8基本数据类型和引用数据类型,除了8基本数据类型以外都是引用数据类型,8基本数据类型分别是byte,short,int,long,char,boolean,float,double,具体如下:1、boolean:数据值...
  • public static void main(String[] args) { boolean var = true;... foo((Object)var); }public static void foo(Object value) { boolean var = (boolean)value; System.out.println(var); }如上方代码所示,函数
  • java Object数据转化为float型数据

    千次阅读 2019-01-17 10:26:39
    float a=Float.parseFloat(b.toString());//b为object类型
  • 话说我现在只能理解int void string long 等等基本数据类型呢 List, Object>> 是一个引用数据类型吗 应该如何理解呢
  • Java中Object类之clone()方法详解

    千次阅读 2017-10-16 08:40:40
    Java语言,当对象调用clone()方法时,就会复制已有的对象。clone()方法在根类Object中定义如下。 /** * Class Object is the root of the class hierarchy. Every class has Object as a superclass. * Al....
  • 说明: 1:好记性,不如写博客 2:静下心来丢掉手机不做低头族 3:开始学习以及复习Android第一节课 4:本章资料取决于... byte: JAVA中数据类型最小的单位,在内存占8个位(bit),占一个字节,取值范围为-128...
  • Java 基本数据类型存储位置

    万次阅读 多人点赞 2018-11-05 10:48:13
    Java 基本数据类型 及 == 与 equals 方法的区别 ...  Java数据类型分为基本数据类型与引用数据类型...byte:Java中最小的数据类型,在内存占1个字节(8 bit),取值范围-128~127,默认值0 short:短整型,2个字节(16...
  • ActionScript3.0向Java转换时数据类型的对应关系:ActionScript数据类型Java数据类型nullnullNumberjava.lang.NumberBooleanjava.lang.Number,boolean,java.lang.String
  • java怎样把string型数据转换为object数据 匿名 | 浏览 7637 次 2012-10-27 20:02 2012-10-28 01:03 最佳答案 因为Object是所有类的父类。所以你定义一个String类型数据,直接赋值...
  • Java中数据类型的默认值

    千次阅读 2009-11-05 12:25:00
    Java中数据类型分为两种,一种是基本数据类型,另一种是对象引用类型。所以默认值也分为基本数据类型及对象引用的默认值。另外数组的默认值则是依据是基本数据类型数组还是对象引用类型数组了。 Java中基本数据类型...
  • 类型转化异常 Java Object转 int

    千次阅读 2014-03-04 17:00:55
    Java中Object转化为int类型 页面间通过application 传值 ...Java中Object类型转化为int类型时,不能直接转化,先是将Object类型转化成String类型,然后将String类型转化为int类型! Object value=null;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 694,274
精华内容 277,709
关键字:

java中object类型数据

java 订阅