@Data
public class MainClass {
class ClassA {
List<ClassC> list;
}
class ClassB {
List<ClassD> list;
}
class ClassC {
}
class ClassD {
}
@Mapper(collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED)
public interface TestMapper {
TestMapper MAPPER = Mappers.getMapper( TestMapper.class );
void map(List<MainClass.ClassA> sourse, @MappingTarget List<MainClass.ClassB> target);
MainClass.ClassB map(MainClass.ClassA sourse);
}
但是在映射器实现中,我看到清除了Target的列表,我不需要它:
public class TestMapperImpl implements TestMapper {
@Override
public void map(List<ClassA> sourse, List<ClassB> target) {
if ( sourse == null ) {
return;
}
target.clear();
for ( ClassA classA : sourse ) {
target.add( map( classA ) );
}
}
@Override
public ClassB map(ClassA sourse) {
if ( sourse == null ) {
return null;
}
ClassB classB = new ClassB();
return classB;
}
}
我是读错了还是做错了?
CollectionMappingStrategy.adder_preferred
用于对象上的加法器。例如car
具有方法addwheel(Wheel Wheel)
,并且不用于映射集合。
CollectionMappingStrategy.target_immutable
用于在映射集合属性时不执行Clear
或AddAll
。即。
相反,将在目标bean上使用目标访问器(例如set)来设置集合。
在映射集合时,如您的示例中所示,这两者都没有影响。
我在这里建议使用您自己的自定义映射
例如。
@Mapper(collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED)
public interface TestMapper {
TestMapper MAPPER = Mappers.getMapper( TestMapper.class );
default void map(List<MainClass.ClassA> source, @MappingTarget List<MainClass.ClassB> target) {
if ( source == null ) {
return;
}
for ( ClassA classA : source ) {
target.add( map( classA ) );
}
}
MainClass.ClassB map(MainClass.ClassA sourse);
问题内容: 问题是repaint()应该清除框架并在该位置绘制矩形,但是保留先前绘制的矩形。那么,该怎么做呢?请解释您的答案。 问题答案: 您是否尝试过在paintComponent方法中调用super.paintComponent(g)?这将清除您的JPanel中绘制的先前图像: 另外,不要启动计时器或在paintComponent方法内执行任何程序逻辑。首先,您不能完全控制何时或是否将调用该方
我有一个如下定义的表视图 当用户单击时,我使用单击的项目详细信息重新加载表。在我重新加载之前,我对表项调用清除 现在,当我单击另一个项目并尝试重新加载表格时,它看起来像下面这样。这是非常奇怪的,因为应该只有一行,但行的大小是一样的,就像从以前的点击,其余的行是空的,除了图标。当我点击图标时,没有任何反应。任何人以前都面临过这种情况。有人知道这是什么原因吗? 我的工具定义如下。它们只是2 的
For方法是在此处生成的,在某些设置器中缺少调用 一些小贴士如何解决这个问题?多谢.
我有一个 A 的任务堆栈 我正在这样设置我的吊挂帐篷。有什么明显的问题吗? 编辑1: 我尝试了这里的建议:清除任务中的所有活动? 但是我仍然得到相同的结果。我的活动A从我的应用程序任务堆栈中开始,我按回并转到C,然后是B,然后又是A。 我开始认为这在Android中是不可能的,或者在使用待定的意图时是不可能的。 编辑2:这不是需要什么标志的问题。更大的问题是什么可能会出错,这些标志似乎没有任何效果
问题内容: 我想清除并更改给定URL上的输入值。我使用的js不会执行任何操作,也不会导致任何错误。为什么会发生这种情况,我该如何解决? 问题答案: 一个可能且可能的答案是,在尝试清除的元素之前,您还有另一个具有相同名称的元素。 请检查html并检查是否找到多个元素,然后采用第一个。 另外,您可以使用css选择器,例如:
我有一个C#平台上的winform项目。我有listview和textbox,如下图所示。我想根据用户输入的文本值对列表重新排序。 我在这里询问之前研究过,我通常会看到基于删除和重新添加所有单元到listview的解决方案。我不想这样做,因为我的listview有太多带图片的项目,所以删除和重新添加项目会导致listview工作缓慢。 我想要的是,当用户在文本框中输入字符时,以这些字符开头的项目,