blob: 6eaff9ad5acd1a92fef6efd61d12a9e85919a763 [file] [log] [blame]
package com.siyeh.igtest.threading.synchronization_on_local_variable_or_method_parameter;
class SynchronizationOnLocalVariableOrMethodParameter {
static {
final Object lock = new Object();
new Object(){{
synchronized (lock) {} // no warning
}};
}
interface IntegerMath {
int operation(int a, int b);
}
public int operateBinary(int a, int b, IntegerMath op) {
return op.operation(a, b);
}
public static void foo() {
final Object lock = new Object();
final SynchronizationOnLocalVariableOrMethodParameter x = new SynchronizationOnLocalVariableOrMethodParameter();
IntegerMath addition = (a, b) -> {
synchronized(lock) {return a + b;} // no warning
};
System.out.println("40 + 2 = " +
x.operateBinary(40, 2, addition));
}
void bar() {
final Object lock = new Object();
synchronized (lock) {
}
}
}