2014-04-26 19:02

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

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

代码:

 1 // 14.4 tell me about the differences between C++ template and java generics.
 2 // Answer:
 3 //    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.
 4 //    2. java generics can put some restrictions on the <T>, such as <T extends superclass>, whereas this is not practical in C++.
 5 //    3. You may use downcast instead of generics, but generics enhance the resuability of code, so is template in C++.
 6 import java.util.Vector;
 7 
 8 public class TestJava<T> {
 9     public T data;
10 
11     public TestJava(T data) {
12         // TODO Auto-generated constructor stub
13         this.data = data;
14     }
15 
16     String getType() {
17         return this.data.getClass().getName();
18     }
19 
20     public static void main(String[] args) {
21         Vector<Integer> v = new Vector<Integer>();
22         v.add(2);
23         v.add(1);
24 
25         TestJava<Vector<Integer>> testJava = new TestJava<Vector<Integer>>(v);
26         System.out.println(testJava.getType());
27         System.out.println(v);
28     }
29 }

 

 posted on 2014-04-26 19:05  zhuli19901106  阅读(239)  评论(0编辑  收藏  举报