companion-object

    8热度

    2回答

    来自Scala REPL的相当奇怪的行为。 虽然下面的编译没有问题: class CompanionObjectTest { private val x = 3 } object CompanionObjectTest { def testMethod(y:CompanionObjectTest) = y.x + 3 } 私有变量似乎并没有从在REPL同伴对象访问:

    7热度

    2回答

    我想写一个类型别名缩短,漂亮和封装的Scala代码。 假设我得到了一些集合,它具有作为一个映射列表的属性,其值是元组的值。 我的类型会写如List[Map[Int, (String, String)]]或其他任何更通用的东西,因为我的应用程序允许它。我可以想象有一个超类型请求Seq[MapLike[Int, Any]]或任何漂浮我的船,具体的子类更具体。 然后我想为这个长类型写一个别名。 clas

    10热度

    2回答

    我想向由建模工具生成的Java类添加隐式转换。所以我想将它们添加到这些类的伴随对象中,以便编译器自动找到它们。但是我不能将它们添加到单独的文件中,因为伴侣必须在同一个文件中定义。我能做些什么吗? 当然,我可以在另一个对象中定义我所有的隐式转换,然后将它带入作用域,但这需要额外的导入。其他解决方案?

    2热度

    1回答

    我想让我的Scala代码更具可读性,因此我为所有参数化类型添加了自定义类型。 所以我在包对象,为简单起见, type IntSeq = Seq[Int] 不过,现在我不能同伴对象上做简单的apply。来自REPL: scala> IntSeq(1, 2, 3) <console>:8: error: not found: value IntSeq IntSeq(1, 2, 3

    0热度

    2回答

    我刚刚学习Scala。我创建了一个伴侣对象(见下面的代码片断),我在其中定义了一个运算符^(表示复共轭)。我必须使用相关类中的伴随对象名称来限定它。我的印象是,我应该无条件地接触同伴的方法。有人可以告诉我,如果我做错了什么吗? class CQ(val r: Q, val i:Q) { def +(z : CQ): CQ = { return new CQ(r + z.r,

    5热度

    3回答

    我认为这个例子更容易展示。 比方说,我有一个条件的情况下类,与使用条件同伴目的是提供一种替代的构造,就像这样: case class Condition( field: String, values: List[String]) } object Condition { def apply(field: String, value: String): Condit