鍍金池/ 問答/Java  C++/ 在JAVA中是如何體現(xiàn)或者實現(xiàn)C++的函數(shù)模板這種機制的

在JAVA中是如何體現(xiàn)或者實現(xiàn)C++的函數(shù)模板這種機制的

例如C++寫一個求最大值的函數(shù)
請輸入代碼

int max(int x,int y)
{
return (x>y)?x:y;
}

這時如果參數(shù)是浮點型,則又要定義一個函數(shù)版本

float max(float x,float y)
{
return (x>y)?x:y;
}

這些函數(shù)內(nèi)容基本相同,但是參數(shù)和返回類型不同,一個個定義則會有許多重復信息,C++中用函數(shù)模板解決

template <class T>
T max(T x, T y)
{
return (x>y)?x:y;
}

比如我在Java中實現(xiàn)一個交換數(shù)組元素的方法:

void swap(int[] array , int i , int j ){
    int temp = i ;
    i = j ;
    j = temp ;
}

之后我發(fā)現(xiàn)不單單有int類型的數(shù)組,還有String數(shù)組,float數(shù)組,功能也是一樣,我應該怎么樣實現(xiàn)呢?不能有什么數(shù)組,我就重寫一個函數(shù),參數(shù)分別為String數(shù)組、float數(shù)組吧。。。

在JAVA中類似這樣的問題是如何解決的?如果實現(xiàn)類似于C++中函數(shù)模板的功能

回答
編輯回答
蝶戀花

Java泛型了解一下

2018年5月29日 08:07
編輯回答
壞脾滊

Java泛型機制了解下

2017年2月2日 21:29
編輯回答
淺淺

舉個栗子~

public class Alg<T> {
    public void swap(T[] array, int x, int y) {
        T tmp = array[x];
        array[x] = array[y];
        array[y] = tmp;
    }
}

或者直接用Object替換類型,因為Java中所有的類都是繼承自Object

2017年4月2日 15:01