我正在尝试使用JUNG2Transformer
在可视化中创建自己的节点形状和大小。
但是,我一直遇到打字问题。我将问题缩小到以下示例。
PluggableRenderContext
在 JUNG中对 进行了简单的实例化ConstantTransformer
,其中 V 是顶点类型:
protected Transformer<V,Shape> vertexShapeTransformer =
new ConstantTransformer(
new Ellipse2D.Float(-10,-10,20,20));
但是,如果我像这样在 Scala 中进行自己的实例化
val vertexShapeTransformer: Transformer[Int, Shape] =
new ConstantTransformer(new Ellipse2D.Float(-10,-10,20,20));
我收到一个打字错误:
type mismatch;
found: org.apache.commons.collections15.functors.ConstantTransformer[java.awt.geom.Ellipse2D.Float]
required: org.apache.commons.collections15.Transformer[Int,java.awt.Shape]"
据我了解,这些类型在概念上是兼容的:ConstantTransformer
is-aTransformer[Object, Shape]
和Ellipse2D
is-a Shape
。
我认为这归结为 ScalaInt
不是Object
. 但是,我无法找到解决此问题的方法,但无法想象库的整个部分会因此变得不可用。
我能做些什么呢?