【问题标题】:Java - When member variable is set, how to set other membersJava - 设置成员变量时,如何设置其他成员
【发布时间】:2019-07-16 00:00:00
【问题描述】:

我有以下遗留代码,如下所示。我想知道在设置 BikeGroup 时是否可以设置 BikeName 和 BikeModel ?基本上,当用户设置 BikeGroup 时,我们如何自动设置 Foo 的 BikeName 和 BikeModel 版本?不使用构造函数来设置值。我正在使用验证器(弹簧框架)设置 BikeGroup...所以我不能使用构造函数或设置器来设置值。

Class Foo{
    private BikeGroup; // 1. when this is set
    private String bikeName; // 2. set this with value in BikeGroup
    private String bikeModel; // 3. and set this with value in BikeGroup
    //getters/setters
}

Class BikeGroup{
    private String bikeName;
    private String bikeModel;
    //getters/setters
}

【问题讨论】:

  • 类没有用括号声明,变量名应该以小写字符开头。此外,“当这个变量被设置时” 没有任何意义。就目前而言,没有办法在你的类中设置任何东西,因为你没有构造函数或方法。
  • 对不起,你是对的,它们是类而不是构造函数。
  • @hyperstack 您能否发布您的验证器代码以及它用于为 BikeGroup 分配值的位置。然后有人将能够帮助您实现您尝试做的事情。
  • 您可以使用反射寻找一些选项。

标签: java spring spring-validator member-variables


【解决方案1】:

是的。 但是Foo 的构造函数必须命名为 Foo(并且您想将 BikeGroup 传递给该构造函数,因此它需要一个参数)。而且您不要将() 放在class 声明中。类似的,

class Foo {
    public Foo(BikeGroup bg) {
        this.bikeName = bg.getBikeName();
        this.bikeModel = bg.getBikeModel();
    }
    private String bikeName;
    private String bikeModel;
}

或者,使用setter...

class Foo {
    public void setBikeGroup(BikeGroup bg) {
        this.bikeName = bg.getBikeName();
        this.bikeModel = bg.getBikeModel();
    }
    private String bikeName;
    private String bikeModel;
}

【讨论】:

  • 这些是很好的答案,但我正在使用验证器(弹簧框架)设置 BikeGroup...所以我不能使用构造函数或设置器来设置值...
  • 如果你不能使用构造函数,你不能使用方法,那我认为你只是运气不好。
猜你喜欢
  • 2012-11-11
  • 2011-02-07
  • 2017-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-17
  • 2013-11-15
  • 1970-01-01
相关资源
最近更新 更多