是否有可能有一個類MyClass<T>
其中T
是一維或多維整數數組?如果是這樣,並假設類型爲T
的類中有一個字段,那麼我將如何去編寫equals
方法?是否有可能有一個泛型類的類型是一個未知維數組?
回答
如果你不想打開實際的類和處理數組的基元分開,你可以將它包裝在陣列中的一個多圖層,使用Arrays.deepEquals()
:
Arrays.deepEquals(new Object[]{t}, new Object[]{other.t})
import java.util.*;
public class A<T>
{
private final T _t;
public A(T t) { _t = t; }
public void doSmth() { System.out.println(_t); }
public static void main(String[] args)
{
{
A<Integer> x = new A<>(10);
x.doSmth();
}
{
Integer[] a = new Integer[5];
A<Integer[]> x = new A<>(a);
x.doSmth();
}
{
List<Integer> a = new ArrayList<Integer>();
A<List<Integer>> x = new A<>(a);
x.doSmth();
}
}
}
當您嘗試實現'equals'時不起作用。如果你嘗試'Arrays.deepEquals(this._t,other._t)'編譯器不能告訴'_t'是一個數組,你也不能用'(Object [])_t'強制轉換它,因爲它是一個基元數組。 – Johnny
http://stackoverflow.com/questions/1449001/is-there-a-java-reflection-utility-to-do-a-deep-comparison-of-two-objects – rezdm
我相信,不會在任何工作它只是在每個字段上調用「equals」。 – Johnny
- 1. 如何有一個泛型類型從一個泛型類型
- 2. 可能有一個函數可用於泛型類中的一種類型?
- 3. 是否有可能在泛型中有可選類型?
- 4. 是否有可能創建一個具有泛型事件的類?
- 5. 是否有可能在vhdl中有泛型類型?
- 6. 是否有可能有一個「本地」類型實例?
- 7. 是否有可能在Java中創建一個泛型類型的2D鋸齒狀數組?
- 8. Java:是否有可能只有需要比較類型的泛型類?
- 9. 是否有可能使用具有泛型綁定類的EJB?
- 10. 是否有可能同時和一般地將有界泛型類和泛型接口子類化?
- 11. JAXB編組場,它的類型是一個泛型類型參數
- 12. 如何檢查是否泛型類型實例從另一個「繼承」,既泛型類型和參數類型
- 13. 是否可以將以下類組合成單個泛型類?
- 14. 是否有一種操作泛型類型的集合?
- 15. 是否有可能創建一個擴展到一個泛型類型限制爲該類型是可選的,在Swift中?
- 16. Kotlin:是否有可能具有一個依賴於實現泛型類型的常量屬性?
- 17. 如何檢測如果類型是另一個泛型類型
- 18. 是否有可能擺脫服務類中的TClient泛型類型
- 19. 知道一個數組是否包含元素類型
- 20. 是否有可能限制泛型參數只接受可空類型?
- 21. 是有可能有一個匿名類型字段條件
- 22. 是否可以通過另一個類來設置泛型?
- 23. 是否有可能在Java中使用泛型類型來分解類?
- 24. 是否有可能在Delphi中爲泛型類創建類型別名
- 25. 泛型類型數組的一種可能的方法?
- 26. Structuremap泛型有兩個類型參數
- 27. 算法檢查泛型類型的數組是否是MaxHeap
- 28. 泛型類型的參數,這也是一個返回值
- 29. 是否有可能使這2個linq語句中的一個泛型方法?
- 30. 是否有可能每個元素類型有多個替代組?
什麼你需要2個'MyClass'實例是否相等? – user1803551
所有字段相同。 – Johnny
然後在所有這些方法上調用equals方法。至於你的第一個問題,爲什麼不檢查你自己? – user1803551