我有一個使用「params」修飾符用於2維數組的C#方法。將帶有「params」修飾符的C#方法轉換爲Java
/// <summary>
/// Combine vectors horizontally.
/// </summary>
///
public static T[] Concatenate<T>(params T[][] vectors)
{
int size = 0;
for (int i = 0; i < vectors.Length; i++)
size += vectors[i].Length;
T[] r = new T[size];
int c = 0;
for (int i = 0; i < vectors.Length; i++)
for (int j = 0; j < vectors[i].Length; j++)
r[c++] = vectors[i][j];
return r;
}
我把它轉換成Java這樣的:
{
int size = 0;
for (int i = 0; i < vectors.length; i++)
{
size += vectors[i].;
}
T[] r =(T[]) Array.newInstance(vectors[0][0].getClass(), size);
int c = 0;
for (int i = 0; i < vectors.length; i++)
{
for (int j = 0; j < vectors[i].length; j++)
{
r[c++] = vectors[i][j];
}
}
return r;
}
但它似乎是錯誤的。解決方案不起作用。 請有人告訴我正確的方法。 非常感謝。
你在你的java代碼中有第4行的語法錯誤。此外,它不完善,方法聲明在哪裏? 「不起作用」是什麼意思?你期望發生什麼,會發生什麼? – Polygnome
如果向量的大小爲0,向量[0]的大小爲0,則Java代碼將不起作用。 –
[堆棧溢出不是代碼翻譯服務](http://meta.stackexchange.com/a/129362)。請用簡單的英文解釋要求,而不要用其他編程語言的代碼解釋。 – dtb