《Cracking the Coding Interview》——第14章:Java——题目4

时间:2021-11-15 23:07:44

2014-04-26 19:02

题目:解释下C++里模板和java里泛型的区别?

解法:我很少用java,属于连语法都不过关的程度。所以这个题还真没法详细答,查了些资料以后写了以下几点。

代码:

 // 14.4 tell me about the differences between C++ template and java generics.
// Answer:
// 1. C++ template can be used on built-in type and user-defined types, java generics can only be used on classes. Integer for int, Double for double.
// 2. java generics can put some restrictions on the <T>, such as <T extends superclass>, whereas this is not practical in C++.
// 3. You may use downcast instead of generics, but generics enhance the resuability of code, so is template in C++.
import java.util.Vector; public class TestJava<T> {
public T data; public TestJava(T data) {
// TODO Auto-generated constructor stub
this.data = data;
} String getType() {
return this.data.getClass().getName();
} public static void main(String[] args) {
Vector<Integer> v = new Vector<Integer>();
v.add(2);
v.add(1); TestJava<Vector<Integer>> testJava = new TestJava<Vector<Integer>>(v);
System.out.println(testJava.getType());
System.out.println(v);
}
}