Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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 不可变在使用Map时不生成正确的代码_Java - Fatal编程技术网

Java 不可变在使用Map时不生成正确的代码

Java 不可变在使用Map时不生成正确的代码,java,Java,我使用以下代码编写此代码: @Value.Immutable @Style(可见性=Value.Style.ImplementationVisibility.PRIVATE) 公共接口TypedEntityQuery{ 字符串环境(); T实体(); 映射条件(); 整数偏移量(); 整数max(); 字符串排序(); } 公共接口属性条件{ } 使用方法如下: TypedEntityQuery query=new-TypedEntityQueryBuilder() .实体(经理) .con

我使用以下代码编写此代码:

@Value.Immutable
@Style(可见性=Value.Style.ImplementationVisibility.PRIVATE)
公共接口TypedEntityQuery{
字符串环境();
T实体();
映射条件();
整数偏移量();
整数max();
字符串排序();
}
公共接口属性条件{
}
使用方法如下:

TypedEntityQuery query=new-TypedEntityQueryBuilder()
.实体(经理)
.conditions(manager.getConditions())
.build();
上面的manager类定义如下:

@Builder
班级经理{
私有@Getter@Setter映射条件;
}
但是,它会抛出以下错误:

[ERROR] .../target/generated-sources/annotations/com/mycompany/backend/model/builder/TypedEntityBuilder.java:[124,20] method put in class com.google.common.collect.ImmutableMap.Builder<K,V> cannot be applied to given types;
[ERROR]   required: java.lang.String,com.mycompany.core.PropertyCondition
[ERROR]   found: java.util.Map.Entry<java.lang.String,capture#2 of ? extends com.mycompany.core.PropertyCondition>
[ERROR]   reason: actual and formal argument lists differ in length
[ERROR] -> [Help 1]
[ERROR]…/target/generated sources/annotations/com/mycompany/backend/model/builder/TypedEntityBuilder.java:[124,20]类com.google.common.collect.ImmutableMap.builder中的方法无法应用于给定类型;
[错误]必需:java.lang.String、com.mycompany.core.PropertyCondition
找到[错误]:java.util.Map.Entry
[错误]原因:实际参数列表和正式参数列表长度不同
[错误]->[帮助1]
生成的代码是:

/**
*将一个条目放入{@link TypedEntity#conditions()conditions}映射。不允许为空
*@param entry键和值项
*@return{@code this}生成器用于链式调用
*/
@CanIgnoreReturnValue
公共最终类型DentityBuilder输入条件(Map.Entry){
this.conditions.put(entry);//此处出错
归还这个;
}

interface
Map
中唯一的方法需要两个参数,而不是一个。这不是
实际参数列表和形式参数列表长度不同的意思吗?
是正确的,但正如您所看到的,这是一个“生成的代码”,尽管如此,生成的代码不会编译。您始终可以编辑生成的代码。或者提出一个不可变的问题。