zoukankan      html  css  js  c++  java
  • [Scala] java使用scala的jar包问题:Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Short

    场景

    刚写的scala处理bmp文件的实验, 打了jar包让java调用一下, 结果发生这个错误.

    package org.tanglizi.bmp.demo;
    
    import org.tanglizi.bmp.image.BmpImage;
    import scala.Tuple3;
    
    public class Application {
    
        public static void main(String[] args) {
            BmpImage image = BmpImage.create(200, 100);
            image = image.fill(new Tuple3<>(127, 0, 100));
            image.save("example.bmp");
        }
    }
    
    
    Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Short
    	at scala.runtime.BoxesRunTime.unboxToShort(BoxesRunTime.java:96)
    	at org.tanglizi.bmp.image.BmpWriter$.$anonfun$toBytes$2(BmpWriter.scala:14)
    	at scala.collection.immutable.List.foreach(List.scala:312)
    	at org.tanglizi.bmp.image.BmpWriter$.$anonfun$toBytes$1(BmpWriter.scala:13)
    	at org.tanglizi.bmp.image.BmpWriter$.$anonfun$toBytes$1$adapted(BmpWriter.scala:12)
    	at scala.collection.immutable.List.foreach(List.scala:312)
    	at org.tanglizi.bmp.image.BmpWriter$.toBytes(BmpWriter.scala:12)
    	at org.tanglizi.bmp.image.BmpImage.save(BmpImage.scala:18)
    	at org.tanglizi.bmp.image.BmpImage.save(BmpImage.scala:14)
    	at org.tanglizi.bmp.demo.Application.main(Application.java:11)
    
    Process finished with exit code 1
    
    

    解决方法

    范型问题, Tuple3<>应该为Tuple3<Short, Short, Short>
    为了简化代码, 改为new Tuple3<>((short)127, ...)

  • 相关阅读:
    CentOS 阿里源
    使用分区挂载 ftp 目录
    Docker-compose常用命令
    docker 启动容器失败 id already in use
    Docker daemon.json 的配置项目合集
    Watchtower
    umount 时目标忙解决办法
    opencontrail 参考资料
    使用disk-image-builder(DIB)制作Ironic 裸金属镜像
    Nodejs常见安装
  • 原文地址:https://www.cnblogs.com/tanglizi/p/12013171.html
Copyright © 2011-2022 走看看