小编Red*_*rav的帖子

在另一个方法中在构造函数中初始化最终变量

我有一个问题并不是那么大,但仍然让我思考如何使用Java构造函数和方法.

我有一个代表我声明最终的半径的常量,并且还公开供所有人查看.当我永远不会改变半径时,我不希望我的代码充斥着getRadius()方法.

我想在构造函数中初始化常量,因为我想在分配半径之前应用某些条件,必须满足某些条件.但是,这些条件确实占用了一些空间,我想将它们放在其他方法中,以使构造函数更清晰.

整个事情最初看起来像这样

public MyProblematicClass {
   public final int radius;
   public MyProblematicClass(... variables ...) {
      if(... long criteria ...) {
         radius = n;
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

而且我喜欢它最终会像

public MyProblematicClass {
       public final int radius;
       public MyProblematicClass(... variables ...) {
          this.setRadiuswithCriteria(criteria);
}

private void setRadiuswithCriteria(criteria crit) {
   if(... crit ...) {
      radius = n;
   }
Run Code Online (Sandbox Code Playgroud)

我知道我可能会将该方法用于其他目的,这就是给我一个'空白字段RADIUS的原因可能尚未初始化,所以我想知道是否有办法添加一个只会是用于建造者,为清洁起见.

java android

7
推荐指数
1
解决办法
6751
查看次数

标签 统计

android ×1

java ×1