2012-03-20 440 views
-1

我跟着Concurrent JUnit tests with RunnerScheduler。它說我需要在ConcurrentJunitRunner.java中使用Java代碼。同時運行JUnit測試用例

但隨後在ConcurrentJunitRunner.java

ExecutorService executorService = Executors.newFixedThreadPool(
        klass.isAnnotationPresent(Concurrent.class) ? 
          klass.getAnnotation(Concurrent.class).threads() : 
          (int) (Runtime.getRuntime().availableProcessors() * 1.5), 
        new NamedThreadFactory(klass.getSimpleName())); 

代碼的一部分生成錯誤

在類型類的方法isAnnotationPresent(類)是不適用的參數(類)」

我該怎麼辦才能刪除錯誤?

+0

什麼是Concurrent.class?它是[註解](http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/annotation/Annotation.html)? – oers 2012-03-20 10:44:14

回答

1

請確保您正在使用的庫中的Concurrent.class爲this annotation class

@Retention(RetentionPolicy.RUNTIME) 
@Target({ElementType.TYPE}) 
public @interface Concurrent { 
    int threads() default 5; 
} 

在我看來,你有一些不同的東西。

+0

concurrent.class不見了,謝謝q,解決了這個問題... – 2012-03-20 11:18:31