我正在try 处理函数参数中的任何类型的输入.对于我的应用程序,我只需要类型的第一个字母来处理每个场景(即:S-&>;字符串,I-&>;Integer...).

此代码适用于Int和字符串,但不适用于其他类型:

def getTypeChar(Value: Any): Char = Value.getClass.toString match {
case "class java.lang.Integer" => 'i'
case "class java.lang.String" => 's'
case "double" => 'f'
case "boolean" => 'b'
case "class scala.collection.immutable.$colon$colon" => 'c'}

对于DOUBLE和布尔值,它会给出以下错误:

Exception in thread "main" scala.MatchError: class java.lang.Double (of class java.lang.String)

推荐答案

我不建议对每种类型使用Any类型的参数或模式匹配,但对于您的特定用例,可以直接在模式匹配中使用该类型:

def getTypeChar(value: Any): Char = value match {
    case _: Integer => 'i'
    case _: String  => 's'
    case _: Double  => 'f'
    case _: Boolean => 'b'
    case _ :: _     => 'c'
    // etc.
    case _ => // treat default case
}

Java相关问答推荐

使用log 4j2格式的Hibernate 显示SQL日志(log)

我的scala文件失败了Scala.g4 ANTLR语法

Mat. n_Delete()和Mat. n_release的区别

使用Java Streams API比较两个不同的Java集合对象和一个公共属性

了解Android Studio中的调试器输出

多个Java线程和TreeMap.put()的非预期行为

Apache POI:使用反射获取zoom 级别

如何调用Firebase Realtime Database中的子图像列表到android studio中的回收器视图?

JVM会优化这个数学运算吗?

JavaFX Maven Assembly插件一直打包到错误的JDK版本

FALSE:它应该在什么时候使用?

RichFaces 3.x-Spring Boot-迁移web.xml

无法初始化JPA实体管理器工厂:无法确定为Java类型<;类>;推荐的JdbcType

Domino Designer 14中的保存代理添加了重影库

try 使用类来包含JSON响应

ResponseEntity.控制器截断响应的JSON部分

javax.crypto-密码对象-提供者服务是如何工作的?

始终使用Spring Boot连接mongodb上的测试数据库

URI构造函数错误?

如何在Java上为循环数组从synchronized迁移到ReentrantLock