Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java lombok能否单独基于类型生成生成器?_Java_Lombok - Fatal编程技术网

Java lombok能否单独基于类型生成生成器?

Java lombok能否单独基于类型生成生成器?,java,lombok,Java,Lombok,我有一个用例,我不想在类本身上使用@Builder,所以我创建了如下基于方法的生成器: @Builder(builderMethodName = "carBuilder") public static Car build(int speed, String brand){ Car car = new Car(); car.setSpeed(speed); car.setBrand(brand); return car; } 但是当给定类有大量字段(超

我有一个用例,我不想在类本身上使用@Builder,所以我创建了如下基于方法的生成器:

  @Builder(builderMethodName = "carBuilder")
  public static Car build(int speed, String brand){
    Car car = new Car();
    car.setSpeed(speed);
    car.setBrand(brand);
    return car;
  }
但是当给定类有大量字段(超过20个)时,我该如何处理呢。 我真的应该将它们指定为参数并手动调用setter吗?

难道lombok不能根据类型自动生成它们吗?

目前这是不可能的,因为lombok在处理文件时避免从类路径的其他位置检查类型

您不将
@Builder
添加到类本身的原因是什么?如果你能描述一个常见的用例,你或其他人可能会将这个功能添加到龙目山。然而,目前我看不出有什么好的理由。大多数库应该已经相对容易使用了,如果它是您自己的代码,为什么不添加Lombok呢


另外,我添加
@Builder
的主要原因是,我希望我的类是不可变的——鉴于实际对象在这里仍然是可变的,为什么要使用Builder而不是setters?

目前这是不可能的,因为Lombok在处理文件时避免检查类路径上其他地方的类型

您不将
@Builder
添加到类本身的原因是什么?如果你能描述一个常见的用例,你或其他人可能会将这个功能添加到龙目山。然而,目前我看不出有什么好的理由。大多数库应该已经相对容易使用了,如果它是您自己的代码,为什么不添加Lombok呢


另外,我添加
@Builder
的主要原因是,我希望我的类是不可变的——鉴于实际对象在这里仍然是可变的,为什么要使用Builder而不是setter?

我必须为现有的代码库编写测试,而不必接触代码。仅使用setter是有意义的,谢谢。@beatrice另外,您可以使用
@Accessors(fluent=true,chained=true)
来创建类似setter链接的生成器。@maaartinus我认为这不会有帮助-beatrice希望生成代码而不涉及所讨论的类。@mjaggard Right。。。。但是使用
lombok.config
(请参阅
lombok.Accessors
的Javadoc中的链接)有一个等效的设置。它适用于整个软件包,可能需要也可能不需要。@maaartinus我认为beatrice提到他们不想接触代码,只想接触测试-因此我假设这不起作用。我必须为现有代码库编写测试,而不接触代码。仅使用setter是有意义的,谢谢。@beatrice另外,您可以使用
@Accessors(fluent=true,chained=true)
来创建类似setter链接的生成器。@maaartinus我认为这不会有帮助-beatrice希望生成代码而不涉及所讨论的类。@mjaggard Right。。。。但是使用
lombok.config
(请参阅
lombok.Accessors
的Javadoc中的链接)有一个等效的设置。它适用于整个软件包,可能需要,也可能不需要。@maaartinus我认为beatrice提到他们不想涉及代码,只想涉及测试——所以我认为这是行不通的。