public ClassItem addField(String type, String name, int access, String init) {
if (init != null && init.length() > 0x7FFF) {
throw new IllegalArgumentException("Internal error - string too long");
}
deleteField(name);
FieldGen fgen = new FieldGen(access,
Type.getType(Utility.getSignature(type)), name, getConstPoolGen());
fgen.setInitValue(init);
Field field = fgen.getField();
getClassGen().addField(field);
m_isModified = true;
m_isHashCurrent = false;
return new ClassItem(name, this, field);
}