class A {
A(int i) {
}
public void foo() {
Thread t = new Thread() {
};
new Thread(t).start(); // Noncompliant [[sc=16;ec=17]] {{"t" is a "Thread".}}
new Thread(bar()).start(); // Noncompliant [[sc=16;ec=21]]
MyThread myThread = new MyThread();
new Thread(myThread).start(); // Noncompliant
Runnable r = new Runnable() {
@Override
public void run() {
}
};
new Thread(r).start(); // Compliant
new A(0);
MyClass m = new MyClass(myThread); // Noncompliant
m.foo(myThread); // Noncompliant
m = new MyClass(0, new MyThread()); // Noncompliant
// Noncompliant@+1
m = new MyClass(0, myThread, r, new MyThread()); // Noncompliant because of arg1 and arg3
m = new MyClass(0, new Thread[] {myThread, new MyThread()}); // Noncompliant {{"Argument 2" is a "Thread[]".}}
m = new MyClass(0); // Compliant
m = new MyClass(0, new Runnable[] {}); // Compliant
m = new MyClass(0, null, r, null); // Compliant
m.bar(myThread); // Compliant
m.qix(); // Compliant
}
public Thread bar() {
return new Thread() {
};
}
}
class MyThread extends Thread {
}
class MyClass {
MyClass(Runnable r) {
}
MyClass(int i, String s) {
}
MyClass(int i, Runnable... runners) {
}
void foo(Runnable r) {
}
void qix(Runnable... runners) {
}
}