private static <T> boolean isDistinct(T... array)
{
Class t = array.getClass().getComponentType();
if (t.isArray())
{
Class e = t.getComponentType();
----------> e[] insideArray= new e[array.length]; <----------//Unknown class: e[] //Cannot resolve symbol: e
for(e i: insideArray)
e[0] = array[0][0];
return isDistinct(insideArray);
}
for (int i = 0; i < array.length - 1; i += 1)
for (int j = i + 1; j < array.length; j += 1)
if (array[i].equals(array[j]))
return false;
return true;
}
Làm thế nào để khai báo mảng của một Class không biết trước?
Thử dùng hàm newInstance trong Java
https://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Array.html#newInstance(java.lang.Class,%20int...)
https://docs.oracle.com/javase/tutorial/reflect/special/arrayInstance.html
Hi Trần Hoàn.
Mục đích của bạn là gì ? Việc tổng quát hóa quá mức đôi khi phản tác dụng.
Không được bạn à, search và test các kiểu không có ra. Không có cách gì cast từ Object[] thành [I hay ngược lại được, exception hết.
Thực ra mình chỉ cần viết để làm được với int[][][][][]… thôi, mình cũng viết được rồi, nhưng vì muốn tái sử dụng code nên cố viết tổng quát mà không nổi. Chắc mình bỏ cuộc vậy 
Nếu muốn làm tiếp thì mình nghĩ làm cách này:
Để ý, mảng ko khác gì một cây đâu.
Mảng 1 chiều int[M] thì cây có depth = 1 với N node lá
Mảng int[NxM] thì là cây có depth = 2, với chiều sâu thứ 1 gồm N node, từ N node đó tồn tại M node con.
Nên noz có thể viết một cấu trúc dữ liệu đặc biệt để giả lập mảng như trên.
À mà mình tìm ra đc 2 link đây
Tái sử dụng thì viết vào phương thức rồi gọi lại được gì. Vấn đề gì nhỉ 
Anh thử dùng Array.newInstance() xem
Class e = t.getComponentType();
Object insideArray= Array.newInstance(e, array.length);
Cái này là xử lý generic, sử dụng một method cho nhiều dạng dữ liệu khác nhau. Giúp hạn chế duplicate code
public static boolean isDistinct(Object array)
{
if (!array.getClass().isArray())
return true;
int length = Array.getLength(array);
Object[] headerArray = new Object[length];
for (int i = 0; i < length; i += 1)
{
Object insideElement = Array.get(array, i);
while (insideElement.getClass().isArray())
insideElement=Array.get(insideElement,0);
headerArray[i] = insideElement;
}
for(int i = 0; i < length - 1; i += 1)
for(int j = i+ 1; j < length; j += 1)
if (headerArray[i].equals(headerArray[j]))
return false;
return true;
}
YES!!! Nhờ link của mấy bạn nó râu ria ra cái get() này 
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?