我正在将Scala与Java库一起使用,该库期望通过a传递类,public static void main(java.lang.String[])
以便它可以通过反射运行以进行集成测试。
object RestServer {
def main(args: Array[String]): Unit = { /* run the server */ }
}
由于此问题的答案是另一个问题,因此将其编译为两个类。
public final class com.example.RestServer$ {
public static final com.example.RestServer$ MODULE$;
public static {};
public void main(java.lang.String[]);
}
和
public final class com.example.RestServer {
public static void main(java.lang.String[]);
}
当我把课程传给图书馆时
@IntegrationTest(main = classOf[RestServer.type])
class MyTests extends RapidoidIntegrationTest { }
我实际上是传递object
单例实例(RestServer$
),而不是RestServer
具有该static void main()
方法的类。
这不是问题,只是库会验证它正在调用的方法是否同时存在public
并且static
在调用之前?
我该如何RestServer
上课呢?
如果您可以控制RestServer
源文件,则可以添加一个空的伴随类。
object RestServer {
def main(args: Array[String]): Unit = { /* run the server */ }
}
class RestServer
这样,Scala将识别出RestServer
存在一个类,因此classOf[RestServer]
将进行编译并为您提供包含静态方法的类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句