小编Ste*_*fan的帖子

为什么JAX-WS导出的对象需要默认构造函数?

JAX-WS要求传输的所有类都具有默认的构造函数(no-arg构造函数).我不明白这个要求,因为客户端基于WSDL创建自己的类.IMO此要求仅适用于那些用作Webservice输入参数的类.

有谁知道如何规避这一要求?

java xml jax-ws jaxb jax-ws-customization

5
推荐指数
1
解决办法
3880
查看次数

Scala:为什么修复类型成员会创建Java子类?

每当上课

class X {
 type T
}
Run Code Online (Sandbox Code Playgroud)

在修复类型成员时实例化一个新的Java类:

scala> new X() { type T = Int }.getClass.hashCode
res5: Int = 2033908791

scala> new X() { type T = Int }.getClass.hashCode
res6: Int = 1820034148
Run Code Online (Sandbox Code Playgroud)

然而,当使用工厂时

object X {
  def apply[TP] = new X { type T = TP }
}
Run Code Online (Sandbox Code Playgroud)

然后单个Java类能够表示所有可能的实例:

scala> X.apply[Int].getClass.hashCode
res7: Int = 45806309

scala> X.apply[String].getClass.hashCode
res8: Int = 45806309
Run Code Online (Sandbox Code Playgroud)

是否有理由存在这种行为,或者Scala编译器是否缺乏单个类就足够的合理优化?

看来这种行为是具有类型成员的类和具有类型参数(class Y[T])的类之间的另一个区别:

scala> class Y[T]
defined class Y

scala> new Y[Int].getClass.hashCode
res9: Int = …
Run Code Online (Sandbox Code Playgroud)

scala

5
推荐指数
1
解决办法
67
查看次数

标签 统计

java ×1

jax-ws ×1

jax-ws-customization ×1

jaxb ×1

scala ×1

xml ×1