我想寫一個方法,我需要創建一個臨時變量,總和,泛型類型T.但是,我收到錯誤「局部變量總和可能尚未初始化」。我怎樣才能初始化一個泛型變量?我無法將其設置爲0或0.0,並且我無法找到有關如何處理此問題的任何信息。下面是我的工作的一部分代碼:如何在Java中初始化一個通用變量?
public Matrix<T,A> multiply(Matrix<T,A> right) throws MatrixException
{
Matrix<T,A> temp = new Matrix<T,A>(arithmetics, rowSize, columnSize);
T sum, product;
if (rowSize != right.columnSize)
throw new MatrixException("Row size of first matrix must match column size "
+ "of second matrix to multiply");
setup(temp,rowSize,columnSize);
for (int i = 0; i < rowSize; i++){
for (int j = 0; j < right.columnSize; j++) {
product = (arithmetics.multiply(matrix[i][j] , right.matrix[j][i]));
sum = arithmetics.add(product, sum);
temp.matrix[i][j] = sum;
}
}
return temp;
}
我不知道這是否會有助於澄清,但這裏是我的接口運算在:
public interface Arithmetics<T> {
public T zero();
public T add(T a, T b);
public T subtract(T a, T b);
public T multiply (T a, T b);
public T parseString(String str);
public String toString(T a);
}
這裏是一個我的課,DoubleArithmetics,只是爲了顯示我是如何實現的接口:
public class DoubleArithmetics implements Arithmetics<Double> {
protected Double value;
public Double zero()
{
return new Double(0);
}
public Double add(Double a, Double b)
{
return new Double(a.doubleValue()+b.doubleValue());
}
public Double subtract (Double a, Double b)
{
return new Double(a.doubleValue()-b.doubleValue());
}
public Double multiply (Double a, Double b)
{
return new Double(a.doubleValue()*b.doubleValue());
}
public Double parseString(String str)
{
return Double.parseDouble(str);
}
public String toString(Double a)
{
return a.toString();
}
}
你嘗試初始化爲null? –
如果上面的null對你不起作用,那麼如何創建一個靜態方法:'T sum = Arithmetics.initialize();'。您可以從該方法返回Double。 –
@WandMaker,我能夠將它初始化爲null。我不知道我是如何忽略它的!謝謝。 – woollyMammoth