Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在Java中重载变量吗?_Java_Variables_Overloading - Fatal编程技术网

我可以在Java中重载变量吗?

我可以在Java中重载变量吗?,java,variables,overloading,Java,Variables,Overloading,我正在写一个表示矩阵的类。我希望它看起来像这样: public class matrix { private int[][] matrix; private double[][] matrix; //And so on and so forth so that the user can enter any primitive type and //get a matrix of it } 这是合法代码,还是必须根据其矩阵所包含的数据类型使用不同的变量名?我想您正

我正在写一个表示矩阵的类。我希望它看起来像这样:

public class matrix {
    private int[][] matrix;
    private double[][] matrix;
    //And so on and so forth so that the user can enter any primitive type and
    //get a matrix of it
}

这是合法代码,还是必须根据其矩阵所包含的数据类型使用不同的变量名?

我想您正在寻找Java泛型,这是自Java 5以来的标准Java功能

其想法是,您将拥有通用矩阵类,该类可以专门用于您需要的任何类型


有很多教程,例如:

您展示的不是合法的Java代码。您建议的方法(不同的名称)会起作用,或者您可以利用Java的对象系统,使用装箱值(这样类成员就是一个对象)或泛型,这样类型就是一个参数。

您不能重载变量。对于您的方法,您应该给它们不同的名称,然后为不同的类型重载
getMatrix
方法

更好的方法是使用Java泛型:

public class Matrix<T> {
    private T[][] matrix;
    public T getMatrix() {return matrix;}
    ...
}
公共类矩阵{
私有T[][]矩阵;
公共T getMatrix(){return matrix;}
...
}

然后创建任意类型的对象:
矩阵
矩阵
,等等。

请将注释作为注释而不是答案发布。谢谢,这使我不必使用一百万种不同的构造函数和方法。还有,梅雅!你为什么不使用编译器来找出原因?