java - Java:如何使用静态部分创建“变量”字段?
问题描述
我有很多字段取决于一个字段的值,如下所示:
private String root;
private String rootHide = root+"&hide";
private String rootApple = root+".apple.me";
...
问题是,root
仅在方法内部分配了一个值(如果重要,非静态):
public myMethod () {
root = "myRoot";
System.out.println(rootHide);
System.out.println(rootApple);
}
在为 和 赋值时,root
已经赋值(null + 它们的文字部分)。rootHide
rootApple
我希望,当分配根时,要“重新分配”的变量(或获取新根引用的变量),因此分别导致"myRoot&hide"
和"myRoot.apple.me"
解决方案
两种方式:
使用方法设置root
...并在该方法中设置其他两个字段:
private void setRoot(String root) {
this.root = root;
rootHide = root+"&hide";
rootApple = root+".apple.me";
}
你总是会做setRoot("myRoot");
而不是root = "myRoot";
使用方法获取其他两个字段
...并在方法中计算它们的值:
private String getRootHide() {
return root + "&hide";
}
private String getRootApple() {
return root + ".apple.me";
}
然后,您将删除字段rootHide
and rootApple
,并始终调用getRootHide()
andgetRootApple
而不是访问rootHide
and rootApple
。
推荐阅读
- javascript - 计算和存储表列中的值的平均值
- .net - Hangfire .NET Core 数据库不存在 - PrepareSchemaIfNecessary
- ruby - 如何使用 Nokogiri 迭代 XML 节点集
- ios - 在 UINavigationController 中添加新的托管对象后,如何“选择”新的 UITableView 行?
- php - 使用 ajax 完成请求后返回刀片模板
- python - Pandas groupby(),然后添加缺失的行
- javascript - 没有使用 Express 调用 NodeJS 路由
- java - 无法将字符串转换为长(时间戳)或长字符串
- visual-studio-code - 如何加载python扩展
- r - 添加标记/标签到 Ridgeline 图 [R / ggplot2]