小编Wis*_*Wis的帖子

垫复选框已选中,未更改复选框状态

我正在实现一个语言切换组件,该组件显示复选框,每个复选框对应于应用程序的每种语言(带有的翻译@ngx-translate)。

单击复选框之一时,应用语言已正确切换,但单击的mat-checkbox仍未选中。

范本:

<mat-checkbox [checked]="selectedLanguage == 'en'" (click)="switchLanguage('en')">English</mat-checkbox>
<mat-checkbox [checked]="selectedLanguage == 'fr'" (click)="switchLanguage('fr')">French</mat-checkbox>
<mat-checkbox [checked]="selectedLanguage == 'de'" (click)="switchLanguage('de')">German</mat-checkbox>
Run Code Online (Sandbox Code Playgroud)

零件 :

export class CheckboxOverviewExample {
  public selectedLanguage: string;

  constructor(){
    this.selectedLanguage = 'fr';
  }

  public switchLanguage(lang: string) {
    this.selectedLanguage = lang;
    // this.translateService.use(lang); // changing ngx-translate language
    console.log('Switched to ' + lang);
  }
}
Run Code Online (Sandbox Code Playgroud)

[checked]路由到组件时,绑定正在工作。在mat-checkbox法语中确实检查时降落到组件(默认值)。现在,当我单击德语或英语时,语言会切换,法语复选框会正确取消选中,但是单击的复选框不会选中。

我遗漏了一些内容,可能只是一个小细节,但是我不明白为什么德语/英语不检查而法语却正确取消了检查。

看看这个简单的stackblitz代码以重现我的情况。

checkbox angular-material2 angular

3
推荐指数
2
解决办法
8046
查看次数

将子类型的HashMap转换为超类型的HashMap

我确实有操纵哈希映射的麻烦.我的问题很简单,但我不能让它工作......

我有一个名为的接口MultilineWritable.我需要在平面文件上编组的类确实实现了这个接口,它定义了一个String toFlatFormat()函数及其相反的功能init(String flatFormat).

现在假设Contract类实现MultilineWritable并由整数标识,而Person类也实现此接口但由字符串标识.

我对合同和人员的HashMaps进行编组的功能如下:

public void marshall(HashMap<Object, MultilineWritable>){}
Run Code Online (Sandbox Code Playgroud)

我的问题是我无法找到一种方法来转换HashMap<String, Person>为a HashMap<Object, MultilineWritable>,即使String扩展ObjectPerson扩展MultilineWritable.同样的铸造HashMap<Integer, Contract>...因此我无法调用我的通用功能.

感谢有关此问题的任何帮助.

java generics casting hashmap

1
推荐指数
1
解决办法
2540
查看次数

静态使用推土机测绘仪

只是想知道是否有一个像这样的静态推土机映射器会导致并发错误:

public static Mapper mapper = new DozerBeanMapper();
public static MyDTO toDTO(MyEntity e) {
    MyDTO dto = mapper.map(e, MyDTO.class);
    return dto;
}
Run Code Online (Sandbox Code Playgroud)

还是应该始终使用以下代码:

public static MyDTO toDTO(MyEntity e) {
    Mapper mapper = new DozerBeanMapper();
    MyDTO dto = mapper.map(e, MyDTO.class);
    return dto;
}
Run Code Online (Sandbox Code Playgroud)

该方法在JBoss Server的@Stateless会话Bean中使用,可以同时访问。事实是我真的不知道Dozer是否利用库中的静态变量或实例变量来决定是否可以/应该在每个调用中使用静态Mapper或创建新实例。

mapping jboss stateless-session-bean dozer

1
推荐指数
1
解决办法
1456
查看次数