繁体   English   中英

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

[英]Can I overload variables in Java?

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

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
}

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

你不能重载变量。 使用您的方法,您应该为它们指定不同的名称,然后为不同类型重载getMatrix方法。

更好的方法是使用Java Generics:

public class Matrix<T> {
    private T[][] matrix;
    public T getMatrix() {return matrix;}
    ...
}

然后创建所需类型的对象: Matrix<Integer>Matrix<Double>等。

我认为您正在寻找Java Generics,这是Java 5以来的标准Java功能。

我们的想法是你会拥有通用的Matrix类,它可以专门用于你需要的任何类型。

有很多教程,例如: 这里

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM