我需要找出Scala中的类类型是否为String。
classType
但即使java.lang.Long
为String
,也会打印import java.util.*;
public class dotcom{
public static void main(String Args[]){
Scanner s = new Scanner(System.in);
System.out.println("Input :");
int i = s.nextInt();
ArrayList<String> mylist = new ArrayList<String>();
System.out.println(mylist.size());
for(int x=1 ; x<=i ; x++){ \\ if I put I=2 then it would take only 1 input instead of 2
String sc=s.nextLine();
mylist.add(sc);
}
System.out.println(mylist.size());
}
}
。我有两个问题:
答案 0 :(得分:1)
您正在匹配已删除的类型。此代码应生成编译时警告,不检查type参数。 请注意,在JVM中,我们有更好或更差的类型擦除。类型参数存在于编译时,但在运行时已消失。
如果您拥有的是类实例,则可能需要检查实例的相等性而不是类的类型。
你可以尝试别的东西:
val STR_CLASS=classOf[String]
val LONG_CLASS=classOf[Long]
classType match {
case STR_CLASS => println("String")
case LONG_CLASS => println("Long")
}
请注意,大写变量名称很重要。