Более чистым способом является использование CGLIB для динамической генерации класса во время выполнения. Очевидно, вы не можете просмотреть исходный файл.
Если вам нужен исходный файл, вы можете попробовать codemodel и сделать что-то вроде:
JCodeModel cm = new JCodeModel();
x = cm._class("foo.bar.Car");
x.field(Engine.class, "engine");
for (PropertyDescriptor pd: Introspector.
getBeanInfo(Vehicle.class).getPropertyDescriptors()) {
g = x.method(JMod.PUBLIC, cm.VOID, pd.getReaderMethod().getName());
g.body()...
s = x.method(JMod.PUBLIC, cm.VOID, "set" + pd.getName());
s.body()...
}
hc = x.method(JMod.PUBLIC, cm.VOID, "hashCode"));
hc.body()...
cm.build(new File("target/generated-sources"));
Или, как предложено ранее, использовать IDE (в Eclipse: Меню «Источник», «Создать хэш-код () и равно () ...», т.е.)