精华内容
下载资源
问答
  • 首先你需要保证要转换的Object的实际类型是Map<String, String>假设Object变量名为obj,强制转换(Map<String, String>)obj转换前最好进行类型检查,防止出现ClassCastExceptionMap<String,String>...
    首先你需要保证要转换的Object的实际类型是Map<String, String>
    假设Object变量名为obj,强制转换(Map<String, String>)obj
    转换前最好进行类型检查,防止出现ClassCastException
    Map<String,String> map = (Map<String,String>)o1;
    这样写会有警告,如何才能让其没有警告?
    追答
    方法上面加注解@SuppressWarnings("unchecked")
     
    能这么转的前提是 你的object对象真的是一个 Map<String,String> 要不也是转不过去的

    转载于:https://www.cnblogs.com/jing1617/p/7153955.html

    展开全文
  • 问题描述: SQL文:SELECT COUNT(1) NUM FROM test WHERE 1=1 Java代码:  图中强转int失败 ... 将查询出来的Object强转为long型即可 转载于:https://www.cnblogs.com/yangpeng007/p/7372...

    问题描述:

    SQL文:SELECT COUNT(1) NUM FROM test WHERE 1=1

    Java代码:

      图中强转int失败

    问题原因:

      dal层查询出来的数字是Long型的,所以强转int会失败

    解决办法:

      将查询出来的Object强转为long型即可

     

    转载于:https://www.cnblogs.com/yangpeng007/p/7372864.html

    展开全文
  • 一、当把Object数组,强转的具体的Integer数组时,会报错。 代码如下: //数组强转报错演示 Object[] numbers = {1,2,3}; Integer[] ints = (Integer[])numbers; 报错: java.lang....

    一、当把Object数组,强转的具体的Integer数组时,会报错。

    代码如下:

       //数组强转报错演示  
      Object[] numbers = {1,2,3}; Integer[] ints = (Integer[])numbers;

     报错:

    java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;

    原因:

      根本原因还是类型的继承关系问题,Integer[]并不是Object[]的子类。虽然,Integer继承自Object,但Integer[]的直接父类是Object。即所有数组类型的直接父类都是Object,可以通过反射来验证。数组类型是写在jvm里得,就像8种基本类型,我们无法在java的标准库中找到这个类。

    //数组的直接父类演示
    @Test
    public void testArrayClass() { Integer[] i = {1,2,3}; Object[] o = {1,2,3}; System.out.println(o.getClass().getSuperclass().getName()); System.out.println(i.getClass().getSuperclass().getName()); }

    输出结果:

    java.lang.Object
    java.lang.Object

     

    解决方案,可以对数组每个成员分别转化:

       @Test
        public void testArrayChange() {
            Object[] numbers = {1,2,3};
            Integer[] ints = new Integer[numbers.length];
            for(int i = 0;i<numbers.length;i++) {
                ints[i] = (Integer)numbers[i];
            }
        }

     

    二、另外:虽然强转会有类型转换异常,但是,java有一个语法特性:

      当A被B继承时,A[]类型的引用可以指向B[]类型的实例.

        即:A[] a = new B[3]成立。

        @Test
        public void testArrayClass() {
            Integer[] i = {1,2,3};
            Object[] o = i;
            System.out.println("引用成功!!");
        }    

     控制台:

    引用成功!!

    这种情况被允许,是java的一个语法特性,这种语法特性的存在是为了方法中参数传递的方便。

    在给数据库语句传递参数时,将多个参数传递给sql语句中的每一个占位符,可以使用Object[]类型的参数来接收,然后,在方法中遍历数组元素,根据不同类型,转化成相应的类型数据。

        @Test
        public void testTraversalObject() {
            Integer[] a = {1,2,3};
            String[] b = {"a","b","c"};
            traversalArray(a);
            traversalArray(b);
        }
        
        public void traversalArray(Object[] o) {
            for(int i = 0;i<o.length;i++) {
                if(o[i] instanceof Integer) {
                    System.out.println("PreparedStatement添加int参数");
                }
                if(o[i] instanceof String) {
                    System.out.println("PreparedStatement添加String参数");
                }
                if(o[i] instanceof java.util.Date) {
                    System.out.println("PreparedStatement添加String参数");
                }
                else {
                    System.out.println("还有其他类型得意添加!");
                }
            }
        }

    如果没有这个特性:

      1、在方法中定义Object类型的参数,来接收数组参数,如果在代码内部进行类型转化,则有类型转化异常的风险,因为,Object是顶级父类,传递的参数可以不是个数组

    Object obj = 1;
    Object[] objs = (Object[]) obj;

      2、使用具体的数据类型数组,String[],Integer[],则会使类型的限制太过固定失去灵活性,每种类型都要新增一个方法来代替。

     @Test
        public void testTraversalObject() {
            Integer[] a = {1,2,3};
            String[] b = {"a","b","c"};
            traversalIntegerArray(a);
            traversalStringArray(b);
        }
        
        public void traversalIntegerArray(Integer[] arr) {
            for(int i = 0;i<arr.length;i++) {
               //给PreparedStatement添加参数
         }
       }
       
      public void traversalStringArray(String[] arr) {
            for(int i = 0;i<arr.length;i++) {
               //给PreparedStatement添加参数
         }
       } 
    } 

     

    转载于:https://www.cnblogs.com/whalesea/p/10375367.html

    展开全文
  • C#类型强转

    千次阅读 2015-09-23 15:25:34
    C++中类型强转可以用(TypeName) 和dynamic_cast() C#中有两种方法 is 和 as public class Boy { } public class Girl { } void Main() { Object boy = new Boy(); // 使用is if (boy is Boy) { Boy b = ...

    C++中类型强转可以用(TypeName) 和dynamic_cast<Type>()

    C#中有两种方法 is 和 as

    public class Boy
    {	
    }
    public class Girl
    {	
    }
    
    void Main()
    {
    	Object boy = new Boy();
    
    	// 使用is
    	if (boy is Boy) {
    		Boy b = (Boy)boy;
    	}
    
    	// 使用as
    	Boy b = boy as Boy;
    	if (b != null) {
    		// do sth
    	}
    }

    最好还是用as来转换,因为is除了判断,使用的时候还需要转一次

    脚本之家的C#教程:http://www.jb51.net/list/list_85_1.htm

    展开全文
  • Java踩坑系列——类型强转Object[] 转 String[]) 文章目录Java踩坑系列——类型强转Object[] 转 String[]) 最近开发中遇到了一个bug,就是List的toArray方法,他返回的是Object[]类型,当我们将它转换为...
  • Unity object强转int、string

    千次阅读 2017-09-15 13:54:49
    第一次用object强转int的时候报错:InvalidCastException: Cannot cast from source type to destination type. int与objec之间不能用强制类型转换,object有toString方法,可以这样转换: int.Parse(s[ret-1]....
  • 看看darron schall 给我们带来的这个强制转换类: ...用法:ObjectTranslator.objectToInstance(Object对象,要强转成的类型) as 要强转成的类型 嘿嘿,这回不用担心Object转VO转不成了。 源码:   package ...
  • scala 类型强转

    千次阅读 2017-05-12 11:27:17
    scala object 转Class Scala强制类型转换asInstanceOf[T]将对象类型强制转换为T类型。 还是由于泛型存在类型擦除的原因,1.asInstanceOf[String]在运行时会抛出ClassCastException异常,而List(1).asInstanceOf...
  • Object强转实体类为空

    2021-10-12 16:41:06
    Object强转实体类为空 1、今天在写项目的时候遇到一个问题,还蛮基础的,哈哈,在这里记录一下,事情是这样的,以前我在写接口的时候,习惯返回类型是对象,时间长了就烦了,费时费力,特别傻X,想着换点花样,刚好...
  • 关于Collection类型强转

    2020-12-24 15:34:48
    Object> list = new ArrayList<>(); list.foreach(e -> {set.add(e);}) Set 转 List List<Object> list = new ArrayList<>(set); Collection 转 List List<Object> list = new ...
  • AS3 类型强转

    千次阅读 2007-08-25 17:13:00
    还在为类型强转烦愁吗?看看darron schall 给我们带来的这个强制转换类: http://www.darronschall.com/weblog/archives/000247.cfm用法:ObjectTranslator.objectToInstance(Object对象,要强转成的类型) as 要强转...
  • 从数据库取数字,转为Interger,报错: java.lang.... 合并写法:注意newApply.setBuyUserId() 类型为Integer类型 newApply.setBuyUserId(Integer.parseInt(pmsList.get(0).get("ID").toString()));
  • Java类型强转的记录

    2019-08-01 19:16:53
    (1)代码: short e1 = 21; System.out.println((int)e1);... Object e2 = e1; System.out.println((int)e2); 运行结果: 21 Exception in thread "main" java.lang.ClassCastException: ...
  • 以下写法全部转换失败: //var vcProject = (VCProject)project.Object; //VCProject vcProject = project.Object as VCProject; //var vcProject = project.Object...使用as强转不会报错,但是得到的是一个null
  • 类型转换: 基本数据类型(boolean除外)之间可以互相转换。 引用类型转换的前提是存在继承或实现关系。 在强转之前,建议先使用instanceof 关键字判断。...注意,包装类和基本类型也不可以强转Object 是所有...
  • 代码告诉你为什么Object不能强转Long 后续涉及到强转Long的形式需要修改成如下格式
  • C# float类型强转

    万次阅读 2010-10-09 09:40:00
    float 类型强转 要注意,开始我用Convert.ToFloat 是不对的 ,这个也不行float.Parse(); Convert.ToSingle() ; 这样写 正解。   写博客,没别的。记录学习的点滴,是日后成长的条件。
  • /* 各种类型将String强转 */ var a="abc"; var b="04abc"; var c="124"; var d="15.24sd"; var a1=""; // var m=Number(a); 控制台的结果为NaN 非数字值 // var m=Number(c); 控制台的结果是124 转换为整型,...
  • 平时我们都可以像下面这样: int i = 0; object oi = i; int j = (int)oi;...没有问题,但是我发现对于我自定义的structure,这样的强转就会报编译错误: ... 自定义的struct都不能和object互相强转吗? 谢谢!
  • java类型强转,自己不能转换成自己产生背景解决方法 产生背景 使用SpringBoot 集成Quartz框架,项目启动时报错: 2020-08-12 13:49:13.003 ERROR 8512 --- [eduler_Worker-3] org.quartz.core.JobRunShell : Job test...
  • 数据类型强转_笔记

    2016-05-06 13:36:25
    Map, Object> map = (Map, Object>) homeDataMapEntity.getData(); List, Object>> list = (List, Object>>) map.get("list"); for (Map, Object> _map : list) { ShopFavourable shopFavourable = ...
  • 在web工程中,DAO层获取MySQL数据库的特殊值的数据时,发生类型强转的异常:java.lang.NumberFormatException: null 经过断点调试,发现异常出现在如图位置: 这是因为JDBC环节使用的是commons-beanutils-1.8.0jar...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,930
精华内容 9,572
关键字:

object类型强转