java中的object类和泛型
2021-02-10 10:17
标签:string api 代码 它的 bsp mamicode 静态类 不能 ring object类和泛型都有助于提高程序的复用性,那么它们的区别是什么呢?又为什么泛型被广泛使用,而object被打入“冷宫”呢? 其实在jdk1.5版本发布之前,object还是被广泛使用的 那么让我们先看看jdk api中对object类的定义: 好吧,定义上并不能看出它的缺点,不过我们得了一个信息:object类的出现远早于泛型 好像也没什么用那我们上代码吧: public class Dog { public class AnotherDog 我定义了两条Dog,都只含有一个rep即年龄,现在我测试这两条狗,使它们都增长一岁 public class testDog { 主函数打印狗增加年龄后的岁数 public static void main(String[] args) { 结果都是11,这没什么问题。但我们注意到,用object定义狗的岁数时 public int addAge() { 执行增加岁数操作就要进行强制类型转换 而如果不进行强制类型转换 连静态类型检查都过不了 总结一下,上文已说过早期的时候,我们使用Object来代表任意类型。使用object必然会带来转型的问题,向上转型是没有任何问题的,但是在向下转型的时候其实隐含了类型转换的问题。也就是说这样的程序并不是安全的。所以Java在JDK5后引入了泛型,提高程序的安全性。 java中的object类和泛型 标签:string api 代码 它的 bsp mamicode 静态类 不能 ring 原文地址:https://www.cnblogs.com/tdw1183710209/p/12743705.html
private Object age = 10;
public Object getAge() {
return age;
}
}
private L age = (L) new Integer(10);
public L getAge() {
return age;
}
}
private Dog d = new Dog();
private AnotherDog
public int addAge() {
int a = (int) d.getAge();
return a+1;
}
public int addAnotherAge() {
return d1.getAge()+1;
}
}
testDog dog = new testDog();
System.out.println(dog.addAge());
System.out.println(dog.addAnotherAge());
}
int a = (int) d.getAge();
return a+1;
}