小编BSJ*_*BSJ的帖子

scala中的擦除消除:非变量类型参数未被选中,因为它通过擦除被消除

我有一个序列Seq [Any],其中包含各种对象(如String,Integer,List [String]等).我正在尝试筛选列表并将其分解为基于类类型分区的单独列表.以下是我在代码中使用的模式:

val allApis = mySequence.filter(_.isInstanceOf[String])
Run Code Online (Sandbox Code Playgroud)

这很好用,不会产生任何警告.但是,当我尝试过滤掉作为字符串列表的对象时:

val allApis = mySequence.filter(_.isInstanceOf[List[String]])
Run Code Online (Sandbox Code Playgroud)

我得到一个警告,说明列表[String]类型中的非变量类型参数String是未选中的,因为它被擦除消除了.现在,这项技术确实有效,我可以根据需要轻松过滤序列,但我想知道以恰当的方式处理警告的适当方法是什么,以便我知道我没有一个严重的错误潜伏在背景中等待爆炸

scala type-erasure

47
推荐指数
2
解决办法
2万
查看次数

排除在jUnit中并行运行的特定测试

我最近偶然发现了一种通过在java项目的pom.xml文件中指定以下内容来通过jUnit并行执行测试的简单方法:

<plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-surefire-plugin</artifactId>
 <configuration>
  <parallel>classes</parallel>
 </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我发现有两个测试类(让我们称之为"badtestclass1"和"badtestclass2")由于编写测试的方式而不断受到并行执行的惩罚.理想情况下,我会重构那些测试类以表现得更好,但在此期间,我想知道是否有一种漂亮的方法来"排除"这些特定类并行执行.基本上,是否有一种方法可以并行执行其他所有操作,然后按顺序执行其他操作(或其他顺序,无关紧要).会有类似下面的工作吗?

<plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-surefire-plugin</artifactId>
 <configuration>
  <parallel>classes</parallel>
  <excludes>
   <excludesFile>badtestclass1</excludesFile>
   <excludesFile>badtestclass2</excludesFile>
  </excludes>
 </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

java parallel-processing junit4 maven

10
推荐指数
3
解决办法
9083
查看次数

标签 统计

java ×1

junit4 ×1

maven ×1

parallel-processing ×1

scala ×1

type-erasure ×1