当前位置: 首页 > 知识库问答 >
问题:

如何使用void set方法在静态常量助手类中创建对象?

柳俊健
2023-03-14

所以我有个目标

@Data
public class Bicycle{
     private String color;
     private long speed;
     private String tag;

    public Bicycle(String color, long speed){
         color = color;
         speed = speed;   
    }

    public void setTag(String tag){
        tag = tag;
    }
}

我还有一个Helper类,它包含了我所有的常量,我在其中存储了一辆我想引用很多的自行车。我想添加一个带有color=“blue”、speed=5L、tag=“mountain”的双字符作为公共静态变量,但我不确定该如何做,因为构造函数不使用tag,setTag返回void。我没有这个Bicycle类,所以无法将其添加到构造函数中。


public class Helper{
   public static final Bicycle = new Bicycle("blue",5L);

}

正因为如此,每当我要创造这辆自行车


     main{
         Bicycle bicycle = Helper.Bicycle;
         Bicycle.setTag"mountain");
   }

如何在Helper类中创建带有“mountain”标记的自行车?

共有3个答案

沈凯康
2023-03-14

它返回空值,因为你没有正确分配

    @Data
public class Bicycle{
     private String color;
     private long speed;
     private String tag;

    public Bicycle(String color, long speed){
         this.color = color;
         this.speed = speed;   
    }

    public void setTag(String tag){
        this.tag = tag;
    }
}

你的助手班

     public class Helper{
       public static final Bicycle bicycle = new Bicycle("blue",5L);
         static{
           bicycle.setTag("mountain");
}
    
    }
东方震博
2023-03-14

可以在助手类中添加静态块,以完成实例化对象时无法完成的更多工作。

public class Helper {
   public static final Bicycle bicycle = new Bicycle("Blue", 5L);

   static {
      bicycle.setTag("mountain");
   }
}
柳杰
2023-03-14

助手中添加静态如下:

public class Helper {
    public static final Bicycle bicycle = new Bicycle("blue", 5L);
    static {
        bicycle.setTag("mountain");
    }
}

然后修改任务,比如tag=tag-

 类似资料:
  • 问题内容: 我正在使用JUnit4和Cobertura仅使用静态方法测试助手类。测试方法是一项容易的任务,并且已经完成。 但是,cobertura显示该类没有被测试完全覆盖,因为它没有在任何地方实例化。 我不想创建此类的实例(它是一个帮助程序类),因此第一个解决方案是隐藏构造函数(这通常是帮助程序类的好方法)。 然后,cobertura抱怨测试未涵盖空的私有构造函数。 有什么解决方案可以在这种情况

  • 问题内容: 例如,在Java中,我可能有一个类,并且有一个名为的静态方法,因此我可以执行以下操作: 我该如何在目标C中做类似的事情? 非常感谢 问题答案: 在Objective-C中,您将此称为“类方法”,请参见此处: 该 + 是最重要的事情; 您可以这样调用方法:

  • 问题内容: 如果我有以下python代码: 它抱怨 如何bar在方法中访问类/静态变量? 问题答案: 代替bar使用或。分配给将创建一个静态变量,分配给将创建一个实例变量。

  • 我希望函数位于类中(不污染全局名称空间),但可以静态访问(从不创建它们所在的对象)。提议的解决办法: 这是一个好的解决方案,还是不可避免地会创建一个对象?我应该使用哪种图案?

  • 我有:MyFile.java: 我的应用程序中的代码: 如何连接此文件?(从Qt(c)代码运行静态方法)

  • 我希望在从另一个类调用的方法“SetTotalSum”中使用findViewById。我如何使用它,尽管它是一个静态方法?