public class VizController implements VisualizationController {
private static VizController instance;
...
public VizController() {
}
public synchronized static VizController getInstance() {
if (instance == null) {
instance = (VizController) Lookup.getDefault().lookup(VisualizationController.class);
instance.initInstances();
}
return instance;
}
How exactly is instantiation working here? Lookup comes from org.openide.util.Lookup, which is part of the Netbeans API, but I'm not understanding how it can create an instance without calling the new keyword.
Here's the source, if anyone is interested: https://github.com/gephi/gephi/blob/master/modules/VisualizationImpl/src/main/java/org/gephi/visualization/VizController.java