Java泛型和类型安全问题示例
在Java编程中,泛型和类型安全是两个重要的概念。下面我们将通过一些示例来理解和解释这些问题。
1. 泛型示例
// 常量模式,不使用泛型
List<String> stringList = new ArrayList<>();
stringList.add("Hello");
stringList.add("World");
// 泛型模式,明确指定数据类型
List<Integer> integerList = new ArrayList<>();
integerList.add(1);
integerList.add(2);
// 在代码中自动推断类型
Map<String, Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);
2. 类型安全问题示例
// 常量模式,不使用泛型
public class NoGenerics {
private String secret;
public void setSecret(String secret) {
this.secret = secret;
}
public String getSecret() {
return secret;
}
}
// 泛型模式,明确指定数据类型
public class GenericsExample {
private List<Integer> integersList;
public void addInteger(int number) {
integersList.add(number);
}
public List<Integer> getIntegersList() {
return integersList;
}
}
// 类型不安全示例
NoGenerics noGen = new NoGenerics();
noGen.setSecret("Password");
Map<String, Object> map = new HashMap<>();
map.put("secret", noGen.getSecret());
System.out.println(map); // 输出:{secret=Password, ...}
在这个例子中,类型不安全示例
部分展示了如何在没有使用泛型的情况下,将一个非泛型类的对象放入Map中,导致类型不匹配,这在Java中是不推荐的。
还没有评论,来说两句吧...