[問題] generics的問題
我想要請問 generic的問題
因為我發現跟c++有點不一樣
先說我的c++ template
主要就是template會去call一個固定type的function Test::func(int)
1 class Test {
2 public:
3 void func(int i) { }
4 };
5
6 template<typename T> class temp {
7 public:
8 void func(T i) {
9 Test t;
10 t.func(i);
11 }
12 };
13
14 int main() {
15 temp<int> t;
16 t.func(3);
17 return 0;
18 }
可是在java裡用generic就會有compile error
1 public class generics<T> {
2 public static void main(String args[]) {
3 new generics().fun(3);
// error func(int) in Test cannot be applied to (T)
4 }
5
6 public void fun(T i) {
7 Test t = new Test();
8 t.func(i);
9 }
10 }
11
12 class Test {
13 void func(int i) { }
14 }
15
看起來是java不會跟c++一樣產生出template instantiation的code
而直接把template的type當成Object
那我想請問的是
在我這java的例子裡
我該怎麼從template call 一般的function呢? ( i.e. Test.func(int) )
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.22.63.249
→
04/27 22:11, , 1F
04/27 22:11, 1F
→
04/27 22:44, , 2F
04/27 22:44, 2F
推
04/28 05:13, , 3F
04/28 05:13, 3F
→
04/28 12:53, , 4F
04/28 12:53, 4F
→
04/28 12:54, , 5F
04/28 12:54, 5F
→
04/28 12:56, , 6F
04/28 12:56, 6F
→
04/28 22:26, , 7F
04/28 22:26, 7F
→
04/28 22:28, , 8F
04/28 22:28, 8F
→
04/28 22:31, , 9F
04/28 22:31, 9F
推
04/29 13:23, , 10F
04/29 13:23, 10F
推
04/29 16:00, , 11F
04/29 16:00, 11F