我可以在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;}
...
}
然后创建任意类型的对象:
矩阵
,矩阵
,等等。请将注释作为注释而不是答案发布。谢谢,这使我不必使用一百万种不同的构造函数和方法。还有,梅雅!你为什么不使用编译器来找出原因?