Which code is easier to maintain?

TESTING PRIVATE METHODS IN JAVA
Test of PrivateConstructor using the Reflection API:
import java.lang.reflect.*;

@Test
public void aTest() throws IllegalAccessException, NoSuchMethodException
, InvocationTargetException, InstantiationException { Constructor cpInit = PrivateConstructor.class.getDeclaredConstructor(String.class); cpInit.setAccessible(true); PrivateConstructor instance = (PrivateConstructor) cpInit.newInstance(testArg);
Test of PrivateConstructor with dp4j.jar injecting the necessary Reflection API at compile-time:
@Test
public void aTest(){
	PrivateConstructor instance = new PrivateConstructor(testArg);


IMPLEMENTING THE SINGLETON DESIGN PATTERN IN JAVA
Class implementing the  Singleton Pattern with lazy initialization:
public class MySingleton extends MySuperclass {
    private static MySingleton instance;

    private MySingleton() {
        super();
    }

    public static synchronized MySingleton getInstance(){
        if(instance == null){
         instance = new MySingleton();
        }
        return instance;
    }
}
Class implementing the Singleton Pattern with lazy initalization using @com.dp4j.Singleton annotation:
import com.dp4j.*;

@Singleton(lazy=true)
public class MySingleton extends MySuperclass {} 

So, which will you code?

wget http://sourceforge.net/projects/dp4j/files/1.2/TESTDRIVE ; chmod +x TESTDRIVE ; ./TESTDRIVE