晚上在repl下模拟一个json的解析时发现,当调用fastjson时会在我的dock上弹出一个Java应用的icon,如下图:
这通常是程序里引用awt/swing之类的情况下才会发生,我很奇怪fastjson怎么会引起,对repl添加启动参数-J-verbose:class
看看到底是否有加载awt先关的类:
看来温少考虑到了这种类型的解析场景,在代码里有相关的引用。
觉得心烦的话,启动repl时加一个java.awt.headless=true
参数吧。
晚上在repl下模拟一个json的解析时发现,当调用fastjson时会在我的dock上弹出一个Java应用的icon,如下图:
这通常是程序里引用awt/swing之类的情况下才会发生,我很奇怪fastjson怎么会引起,对repl添加启动参数-J-verbose:class
看看到底是否有加载awt先关的类:
看来温少考虑到了这种类型的解析场景,在代码里有相关的引用。
觉得心烦的话,启动repl时加一个java.awt.headless=true
参数吧。
scala2.11的repl中新增了kind命令,见这里,对于kind的理解也可参考之前的文章。
不过,下载了scala2.11-m3版本,发现kind命令并没有用 *号的方式来表达.
scala> :k Int
scala.Int's kind is A
scala> :k class Test{}
Test's kind is A
scala> :k List
scala.collection.immutable.List's kind is F[+A]
scala> :k class C[M[_]]
C's kind is X[F[A]]
scala> :k class C[M2[M1[_]]]
C's kind is Y[X[F[A]]]
对于自身类型,kind命令不采用*号表示,而是用 A 来表示。对于构造器类型 * -> *
采用 F[A]
描述。
今天发现2.10的repl下:cp命令 (设置classpatch)不能正常工作。2.9.x正常。
scala> :cp /data/tmp/demo/
Added '/data/tmp/demo'. Your new classpath is:
".:/data/tmp/demo"
Nothing to replay.
//虽然cp命令没报任何问题,但在import的时候不灵
scala> import test.A1
<console>:7: error: not found: value test
import test.A1
^
2.10.1仍存在此bug,很低级啊,看来每个大版本发布后没几个小版本fix bug是很不稳定的。
先用启动时的-cp参数替代了:
scala -cp /data/tmp/demo/
// work
scala> import test.A1
import test.A1
查了一下这个bug:https://issues.scala-lang.org/browse/SI-6502
早就有人报了,他们觉得优先级不高,一拖再拖,要到2.10.2修复,估计在急着修复其他bug。