Java泛型和类型安全问题示例

原创 男娘i 2024-12-05 16:39 134阅读 0赞

在Java编程中,泛型和类型安全是两个重要的概念。下面我们将通过一些示例来理解和解释这些问题。

1. 泛型示例

  1. // 常量模式,不使用泛型
  2. List<String> stringList = new ArrayList<>();
  3. stringList.add("Hello");
  4. stringList.add("World");
  5. // 泛型模式,明确指定数据类型
  6. List<Integer> integerList = new ArrayList<>();
  7. integerList.add(1);
  8. integerList.add(2);
  9. // 在代码中自动推断类型
  10. Map<String, Integer> map = new HashMap<>();
  11. map.put("One", 1);
  12. map.put("Two", 2);

2. 类型安全问题示例

  1. // 常量模式,不使用泛型
  2. public class NoGenerics {
  3. private String secret;
  4. public void setSecret(String secret) {
  5. this.secret = secret;
  6. }
  7. public String getSecret() {
  8. return secret;
  9. }
  10. }
  11. // 泛型模式,明确指定数据类型
  12. public class GenericsExample {
  13. private List<Integer> integersList;
  14. public void addInteger(int number) {
  15. integersList.add(number);
  16. }
  17. public List<Integer> getIntegersList() {
  18. return integersList;
  19. }
  20. }
  21. // 类型不安全示例
  22. NoGenerics noGen = new NoGenerics();
  23. noGen.setSecret("Password");
  24. Map<String, Object> map = new HashMap<>();
  25. map.put("secret", noGen.getSecret());
  26. System.out.println(map); // 输出:{secret=Password, ...}

在这个例子中,类型不安全示例部分展示了如何在没有使用泛型的情况下,将一个非泛型类的对象放入Map中,导致类型不匹配,这在Java中是不推荐的。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,134人围观)

还没有评论,来说两句吧...

相关阅读