当在选中替换 UML 元素选项的情况下,将 UML 模型转换成 Java 代码时,UML 模型中的对象被替换成生成的 Java 文件的相应快捷方式。您可以使用撤销按钮来撤销操作。但是,如果您接着单击重做按钮,则模型会丢失之前生成的 Java 文件的所有快捷方式。要变通此问题,请不要使用重做按钮。而是再次运行 UML 到 Java 的转换。
如果两个 Javadoc 注释在 Java 元素之前,则 UML 到 Java 的转换可能不更新 Java 元素。
例如,如果转换生成在其 Javadoc 中包含 @generated 标记的 Java 元素,并且另一个 Javadoc 注释在 Java 元素之前,则当重新应用转换时,该元素(例如 transformGenerated())不更新。
/**
* A commented user-created method
*/
// private void userCreated() {
// }
/**
* @generated "..."
*/
public void transformGenerated() {
}要变通此问题,请注释掉全部 Java 元素(全部方法、字段、类或接口定义)并将它们(包括所有前面的注释)移至 Java 源文件尾部的结束括号(})之前。然后,原始示例看上去如以下示例:
/**
* @generated "..."
*/
public void transformGenerated() {
}
... 源文件尾部且结束括号之前 ...
/**
* A commented user-created method
*/
// private void userCreated() {
// }
如果源模型中不再指定 Java 元素,则 UML 到 Java 的转换可能从源代码中除去该元素。
例如,当重新应用转换时,如果在源模型中未定义方法(例如,importantUserCreated()),则从源代码除去该方法以及包含 Javadoc 的注释过的代码。
/**
* @generated "..."
*/
// public void generatedMethodUserWantsToSave() {
// }
private void importantUserCreated() {
}要变通此问题,请注释掉全部 Java 元素(全部方法、字段、类或接口定义),并将它们(以及所有前面的注释)移至 Java 源文件尾部的结束括号(})之前。然后,原始示例看上去如以下示例:
private void importantUserCreated() {
}
... 源文件尾部且结束括号之前 ...
/**
* @generated "..."
*/
// public void generatedMethodUserWantsToSave() {
// }