java.lang.Long匹配java.lang.String

时间:2018-01-13 07:30:47

标签: java scala

我需要找出Scala中的类类型是否为String。

classType

但即使java.lang.LongString,也会打印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()); } } 。我有两个问题:

  1. 为什么会这样?
  2. 有什么其他方法可以做同样的事情?

1 个答案:

答案 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")
}

请注意,大写变量名称很重要。