Scala 如何调试隐式转换--隐式转换代码的显示展示

方法1

在需要隐式转换的地方,把需要的参数显示的写出。

方法2,查看编译代码

在terminal中 利用 scalac -Xprint:typer xxx.scala方法打印添加了隐式值的代码示例。

对于复杂的工程来说,直接跑到terminal执行 scalac -Xprint:typer xxx.scala会报很多库不存在的错误。

BasicTest.scala:5: error: object scalatest is not a member of package org
import org.scalatest.funsuite                                            ^                                                             
BasicTest.scala:6: error: object apache is not a member of package org
import org.apache.log4j.Logger                                        ^                                                          
BasicTest.scala:7: error: object json4s is not a member of package org
import org.json4s._                                                   ^                                                          
BasicTest.scala:8: error: object json4s is not a member of package org
import org.json4s.JsonDSL._     

可在idea的设置中,找到如下配置,写入-Xprint:typer
在这里插入图片描述
再到要调试的文件页面,进行编译(快捷键Ctrl+Shift+F9)。然后编译结果就会打印,比如我的如下代码:

  test("json字段覆盖测试"){var json = ("name" -> "joe") ~ ("age" -> 35)LOGGER.info(compact(render(json)))json ~ ("age" -> 38)LOGGER.info(compact(render(json)))var json2=parse("{\"name\":\"joe\",\"age\":35}")json2 = json2 merge render("height",175)}

编译输出:

    BasicTest.this.test("json�ֶθ���")({var json: org.json4s.JsonAST.JObject = org.json4s.JsonDSL.pair2Assoc[String](scala.Predef.ArrowAssoc[String]("name").->[String]("joe"))({((x: String) => org.json4s.JsonDSL.string2jvalue(x))
}).~[Int](scala.Predef.ArrowAssoc[String]("age").->[Int](35))({((x: String) => org.json4s.JsonDSL.string2jvalue(x))}, {((x: Int) => org.json4s.JsonDSL.int2jvalue(x))});BasicTest.this.LOGGER.info(org.json4s.jackson.JsonMethods.compact({<artifact> val x$1: org.json4s.JsonAST.JObject = json;<artifact> val x$2: org.json4s.Formats = org.json4s.jackson.JsonMethods.render$default$2(x$1);org.json4s.jackson.JsonMethods.render(x$1)(x$2)}));org.json4s.JsonDSL.jobject2assoc(json).~(org.json4s.JsonDSL.pair2jvalue[Int](scala.Predef.ArrowAssoc[String]("age").->[Int](38))({((x: Int) => org.json4s.JsonDSL.int2jvalue(x))}));BasicTest.this.LOGGER.info(org.json4s.jackson.JsonMethods.compact({<artifact> val x$3: org.json4s.JsonAST.JObject = json;<artifact> val x$4: org.json4s.Formats = org.json4s.jackson.JsonMethods.render$default$2(x$3);org.json4s.jackson.JsonMethods.render(x$3)(x$4)}));var json2: org.json4s.JValue = org.json4s.jackson.JsonMethods.parse(org.json4s.`package`.string2JsonInput("{\"name\":\"joe\",\"age\":35}"), org.json4s.jackson.JsonMethods.parse$default$2, org.json4s.jackson.JsonMethods.parse$default$3);json2 = JsonAST.this.JValue.j2m[org.json4s.JValue](json2).merge[org.json4s.JValue, org.json4s.JsonAST.JValue]({<artifact> val x$5: org.json4s.JsonAST.JObject = org.json4s.JsonDSL.pair2jvalue[Int](scala.Tuple2.apply[String, Int]("height", 175))({((x: Int) => org.json4s.JsonDSL.int2jvalue(x))});<artifact> val x$6: org.json4s.Formats = org.json4s.jackson.JsonMethods.render$default$2(x$5);org.json4s.jackson.JsonMethods.render(x$5)(x$6)})(JsonAST.this.JValue.jjj[org.json4s.JValue, org.json4s.JValue])})((Position.apply("BasicTest.scala", "Please set the environment variable SCALACTIC_FILL_FILE_PATHNAMES to yes at compile time to enable this feature.", 27): org.scalactic.source.Position))}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/41998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM——类文件结构

文章目录 一 概述二 Class 文件结构总结2.1 魔数2.2 Class 文件版本2.3 常量池2.4 访问标志2.5 当前类索引,父类索引与接口索引集合2.6 字段表集合2.7 方法表集合2.8 属性表集合 一 概述 在 Java 中&#xff0c;JVM 可以理解的代码就叫做字节码&#xff08;即扩展名为 .class …

winform 封装unity web player 用户控件

环境&#xff1a; VS2015Unity 5.3.6f1 (64-bit) 目的&#xff1a; Unity官方提供的UnityWebPlayer控件在嵌入Winform时要求读取的.unity3d文件路径&#xff08;Src&#xff09;必须是绝对路径&#xff0c;如果移动代码到另一台电脑&#xff0c;需要重新修改src。于是考虑使…

elementUI 的上传组件<el-upload>,自定义上传按钮样式

方法一&#xff1a; 原理&#xff1a;调用<el-upload>组件的方法唤起选择文件事件 效果&#xff1a; 页面代码&#xff1a; 1、选择图片按钮 <div class"flex_row_spacebetween btn" click"chooseImg"><span class"el-icon-plus ic…

matlab机器人工具箱基础使用

资料&#xff1a;https://blog.csdn.net/huangjunsheng123/article/details/110630665 用vscode直接看工具箱api代码比较方便&#xff0c;代码说明很多 一、模型设置 1、基础效果 %采用机器人工具箱进行正逆运动学验证 a[0,-0.3,-0.3,0,0,0];%DH参数 d[0.05,0,0,0.06,0.05,…

教育行业软文怎么写,媒介盒子无偿分享

随着产业升级和技术变革、信息的智能化、数字化发展&#xff0c;也为教育行业带来了新的增长点&#xff0c;在线教育课程类型丰富多元&#xff0c;新课程不断涌现。在激烈的市场竞争环境下&#xff0c;教育机构如何根据市场实行差异化战略并加强自身品牌建成为挑战。 如今&…

微服务-Ribbon(负载均衡)

负载均衡的面对多个相同的服务的时候&#xff0c;我们选择一定的策略去选择一个服务进行 负载均衡流程 Ribbon结构组成 负载均衡策略 RoundRobinRule&#xff1a;简单的轮询服务列表来选择服务器AvailabilityFilteringRule 对两种情况服务器进行忽略&#xff1a; 1.在默认情…

Php“牵手”拼多多商品详情页数据采集方法,拼多多API接口申请指南

拼多多详情接口 API 是开放平台提供的一种 API 接口&#xff0c;它可以帮助开发者获取商品的详细信息&#xff0c;包括商品的标题、描述、图片等信息。在电商平台的开发中&#xff0c;详情接口API是非常常用的 API&#xff0c;因此本文将详细介绍详情接口 API 的使用。 一、拼…

315官方点赞!多燕瘦或将成酵素选购唯一标准

食用酵素及其衍生产品&#xff0c;是近年来国内主流电商平台的主要增长类目之一。在全球范围内&#xff0c;酵素的流行由来已久&#xff0c;其中在日本、北美、欧洲等发达国家和地区尤为风靡。据不完全统计&#xff1a;欧洲酵素市场规模约占全球酵素市场份额的40%以上&#xff…

【Linux】一切皆文件

Linux 下一切皆为文件&#xff0c; 文件包括头文件&#xff0c;库文件&#xff08;静态库和共享库&#xff09;&#xff0c;可执行文件&#xff0c;目录文件&#xff0c;软链接文件&#xff0c;配置文件等。 每个文件都依据权限分为用户、用户组和其他人三个身份&#xff0c;…

webpack相关面试

运行 npm run xxx 的时候发生了什么&#xff1f; npm run xxx的时候&#xff0c;首先会去项目的package.json文件里找scripts 里找对应的xxx&#xff0c;然后执行 xxx的命令 npm i 的时候&#xff0c;npm 读到该配置后&#xff0c;就将该文件软链接到 ./node_modules/.bin 目录…

vscode conda activate激活环境出错

vscode conda activate 出错 conda-script.py: error: argument COMMAND: invalid choice: ‘activate’ To initialize your shell, run$ conda init <SHELL_NAME>Currently supported shells are:- bash- fish- tcsh- xonsh- zsh- powershellSee conda init --help f…

自定义Android滑块拼图验证控件

自定义Android滑块拼图验证控件 拼图认证视图默认策略工具类参考 1、继承自AppCompatImageView&#xff0c;兼容ImageView的scaleType设置&#xff0c;可设置离线/在线图片。 2、通过设置滑块模型&#xff08;透明背景的图形块&#xff09;设置滑块&#xff08;和缺省块&#x…

【HarmonyOS北向开发】-01 HarmonyOS概述

飞书原文链接-【HarmonyOS北向开发】-01 HarmonyOS概述https://fvcs2dhq8qs.feishu.cn/docx/TDf2d2KMaoPSUUxnvg2cASDdnCe?fromfrom_copylink

Leetcode-每日一题【剑指 Offer 20. 表示数值的字符串】

题目 请实现一个函数用来判断字符串是否表示数值&#xff08;包括整数和小数&#xff09;。 数值&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a; 若干空格一个 小数 或者 整数&#xff08;可选&#xff09;一个 e 或 E &#xff0c;后面跟着一个 整数若干空…

xcode把包打到高版本的iPhone里

打开xcode CTRLb build工程&#xff0c;build成功 把手机连到mac&#xff0c;在xcode选项卡里面的window里面选中device and simulator 打开对应的手机的页面 然后在工程目录下build成功过后有一个product的文件夹里面&#xff0c;直接把app拖到对应的手机的窗口就可以不用…

指针和数组简单填空题合集(纯刷题:60道)

前言 本篇文章适合初学指针和数组的朋友&#xff0c;如果您看了前几组题觉得很简单&#xff0c;可以看一看我的另一篇文章。 通过本篇文章&#xff0c;你可以清晰的区分出strlen和sizeof的区别&#xff0c;&#xff08;题目类型包括一维数组、二维数组&#xff09;并提高自己…

Linux NTP原理及配置使用

一、NTP简介 1.NTP简介 NTP&#xff08;Network Time Protocol&#xff0c;网络时间协议&#xff09;是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC&#xff0c;其精度在局域网内可达0.1ms&#xff0c;在互联网上绝大多数的…

CSS自学框架之动画

这一节&#xff0c;自学CSS动画。主要学习了淡入淡出、淡入缩放、缩放、移动、旋转动画效果。先看一下成果。 优雅的过渡动画&#xff0c;为你的页面添加另一份趣味&#xff01; 在你的选择器里插入 animation 属性&#xff0c;并添加框架内置的 keyframes 即可实现&#xff0…

《Kubernetes部署篇:Ubuntu20.04基于外部etcd+部署kubernetes1.24.16集群(多主多从)》

一、架构图 如下图所示: 二、环境信息 1、部署规划 主机名K8S版本系统版本内核版本IP地址备注k8s-master-631.24.16Ubuntu 20.04.5 LTS5.15.0-69-generic192.168.1.63master节点 + etcd节点k8s-master-641.24.16Ubuntu 20.04.5 LTS5.15.0-69-generic192.168.1.64master节点 + …

【抖音直播小玩法】介绍

一、是什么 直播小玩法是基于抖音直播场景的新型实时互动内容。直播小玩法由开发者自主开发&#xff0c;接入平台并开放给抖音主播挂载使用。开发者提供创意&#xff0c;依托平台生态&#xff0c;获取收益。 介入标准&#xff1a; 企业开发者&#xff0c;暂不支持个人开发者…