# SuppressStaticInitializationFor

If you are working with classes which have static initializers such as:

```java
package com.example;

public class ClassWithStaticInitializer {
        private static Handler mHandler = new Handler();
}
```

As `mHandler` belongs to `ClassWithStaticInitializer.class` not instance of `ClassWithStaticInitializer`, JVM will initialize this `mHandler` as soon as execution starts, thus we will not get a chance to mock it with `whenNew()`. In this case, we can suppress its initialization and later set its value with `Whitebox`.

Here is an example to suppress `mHandler` in `ClassWithStaticInitializer.class`:

```java
@RunWith(PowerMockRunner.class)
@SuppressStaticInitializationFor({
        "com.example.ClassWithStaticInitializer"
})
public class ClassWithStaticInitializerTest {
        // now when we call
        @Before
        public void setup throws Exception {
                // At this stage, ClassWithStaticInitializer.mHandler will be null
                Whitebox.setInternalState(ClassWithStaticInitializer.class, "mHandler", mckHandler);
        }
}
```

**tip:** if you see any error with StackTrace containing similar looking line `com.examlpe.ExampleClass.<clinit>`. It means there is an static initializer, just add `com.examlpe.ExampleClass` in your `SuppressStaticInitializationFor` annotation.
