scala中的C#部分类是否有任何等价物?我想用这样的对象离开我的功能:
// file 1:
object MainClass {
def addValue(value: AnyRef) = ???
}
// file 2:
partial object MainClass {
addValue(1)
}
// file 3:
partial object MainClass {
addValue(2)
}
// file 4: initialize MainClass
MainClass.init()
Run Code Online (Sandbox Code Playgroud)
我如何使用scala实现此功能?
我试图将自定义解串器添加到LocalDateTime对象的案例类中,但是它从circe-java8模块中获取默认解串器。如果删除此模块,代码将无法编译(找不到解串器LocalDateTime)
sbt
"io.circe" %% "circe-core" % circeVersion,
"io.circe" %% "circe-generic" % circeVersion,
"io.circe" %% "circe-parser" % circeVersion,
"io.circe" %% "circe-optics" % circeVersion,
"io.circe" %% "circe-java8" % circeVersion,
Run Code Online (Sandbox Code Playgroud)
以及带有自定义LocalDateTime序列化器/解串器的源代码
case class A(
date: LocalDateTime,
)
object A {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
implicit val dateEncoder = Encoder.encodeString.contramap[LocalDateTime](_.format(formatter))
implicit val dateDecoder = Decoder.decodeString.emap[LocalDateTime](str => {
Either.catchNonFatal(LocalDateTime.parse(str, formatter)).leftMap(_.getMessage)
})
}
Run Code Online (Sandbox Code Playgroud)
如何将LocalDateTime对象中指定的对象的自定义反序列化器应用A到A案例类?
我正在我的 Spring Boot 应用程序中启动 hazelcast 实例。
Hazelcast 配置
@Configuration
@EnableCaching
public class HazelcastConfig {
@Bean
public Config hazelCastConfig() {
final Config config = new Config();
config.setClassLoader(getClass().getClassLoader());
config.setInstanceName("cache");
return config;
}
@Bean
public HazelcastInstance hazelcastInstance() {
return Hazelcast.newHazelcastInstance(hazelCastConfig());
}
}
Run Code Online (Sandbox Code Playgroud)
当我调用从 hazelcast Map 查询数据的 HTTP 端点时,它有时会失败,并出现类未找到异常。
java.lang.ClassNotFoundException: com.someOrg.SomeClass
at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedWebappClassLoader.loadClass(TomcatEmbeddedWebappClassLoader.java:70) ~[spring-boot-2.0.5.RELEASE.jar!/:2.0.5.RELEASE]
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
at com.hazelcast.nio.ClassLoaderUtil.tryLoadClass(ClassLoaderUtil.java:173) ~[hazelcast-3.9.4.jar!/:3.9.4]
at com.hazelcast.nio.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:147) ~[hazelcast-3.9.4.jar!/:3.9.4]
at com.hazelcast.nio.IOUtil$ClassLoaderAwareObjectInputStream.resolveClass(IOUtil.java:593) ~[hazelcast-3.9.4.jar!/:3.9.4]
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1826) ~[na:1.8.0_131]
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1713) ~[na:1.8.0_131]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2000) ~[na:1.8.0_131]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535) ~[na:1.8.0_131]
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422) ~[na:1.8.0_131]
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:79) ~[hazelcast-3.9.4.jar!/:3.9.4] …Run Code Online (Sandbox Code Playgroud)