So I’m working with Java at work now. A little applet that has several tabbed panes of similar “View” objects.
The code I’m modeling it off of has several If/Then/Else blocks wrapping cut-n-pasted code which is slightly altered for each class. I want to replace this with something much more intelligent and generic. Something like this:
private void loadGenericView (String objClass, String label) { String msg; try { Class c = Class.forName(objClass); DataView view = (DataView) c.newInstance(); tabbedPane.add(view, label); } catch (Exception e) { msg = "Catastrophic Error: " + e.getMessage(); JOptionPane.showMessageDialog(null, msg, label, JOptionPane.ERROR_MESSAGE); } }
But that doesn’t work. Is there a right way to do this? All the references I’ve seen to “Factory” objects keep creating objects of a specific pre-known class. I know how to solve it in perl (basically like this but with slightly less verbosity).
Written on August 6th, 2004 by Chris Prather