Ric*_*ish 5 java eclipse eclipse-templates
对于MVC模型类,我的setter看起来像:
enum BoundProperty {FIELD_NAME, ...}
private Type fieldName;
public setFieldName(Type newValue) {
Type oldValue = fieldName;
fieldName = newValue;
firePropertyChange(BoundProperty.FIELD_NAME, oldValue, newValue);
}
Run Code Online (Sandbox Code Playgroud)
给定一个字段,这个输出可以从自动生成的setter生成吗?如果没有,是否有办法从模板中获取此输出?
输出应该CamelCase字段名称以生成方法名称,因此fieldName生成setFieldName()和大写字段名称以生成属性enum.
所以fieldName生成FIELD_NAME(或者FIELDNAME也会起作用).
我认为没有一种直接的方法可以通过 Eclipse 模板来实现这一点,主要涉及camelCase/upperCase 和枚举值的生成。您可以检查这两个问题有没有办法在 Eclipse (Helios) 代码模板中将变量值的首字母大写,以编程方式添加代码模板?深入了解更多细节。
恕我直言,实现您想要的效果的最佳方法是使用Fast Code Eclipse 插件并为该插件编写一个速度模板,该模板可从字段生成所有代码。
enum BoundProperty {
#foreach ($field in ${fields})
${field.toUpperCase()} #if( $foreach.hasNext ), #end
#end
}
#foreach ($field in ${fields})
public ${field.type} get${field.name.substring(0,1).toUpperCase()}${field.name.substring(1)}(${field.type} newValue) {
Type oldValue = fieldName;
fieldName = newValue;
firePropertyChange(BoundProperty.${field.name.toUpperCase()}, oldValue, newValue);
}
#end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2055 次 |
| 最近记录: |