Casting Any to Tuple2
casting, scala, tuples
Solution
Why don't you just use pattern matching?
def function(msg: Any) = {
msg match {
case tuple @ (a: Any, b: Any) => tuple
}
}
Problem
I have a Scala function which passes message of type 'Any'. In most cases it will be a tuple of size 2. The function that receives this message needs to see the specific types of the tuple elements: ``` main() { // call to function // msg is of type Any. func (msg) } ``` Now in my function, ``` function (msg : Any) { String inputType = msg.getClass.getCanonicalName if (inputType.compareTo("scala.Tuple2") == 0) { // I now know that the input to the function is a tuple..I want to extract the type of each element in this tuple. //something like: var tuple = msg.asInstanceof(scala.Tuple2) // This line gives an error. I want to cast object of Type Any to a tuple. var 1type = tuple._1.getClass.getCanonicalName var 2type = tuple._2.getClass.getCanonicalName } } ```