In einem bestimmten Projekt warf die Unit-Test-Klasse immer wieder Fehler, sodass die Ursache untersucht wurde. Es ist ein Memo des damaligen Untersuchungsprozesses.
SLF4J: Failed toString() invocation on an object of type [org.apache.poi.hssf.usermodel.HSSFRow]
java.lang.AssertionError: hashCode not designed
at org.apache.poi.hssf.usermodel.HSSFRow.hashCode(HSSFRow.java:704)
at java.lang.Object.toString(Object.java:236)
:
:
Aufgrund des obigen Fehlers ist die Ausgabe des Debug-Protokolls fehlgeschlagen. (Ich konnte die Testklasse noch durchführen)
Schauen Sie sich HSSFRow.java an, wo der Fehler auftritt
702: @Override
703: public int hashCode() {
704: assert false : "hashCode not designed";
705: return 42; // any arbitrary constant will do
706: }
Anscheinend scheint die Implementierung so zu sein, dass beim Aufruf der hashCode-Methode ein AssertionError auftritt.
Ich war ein wenig besorgt und beschloss, vorerst die Version jeder Bibliothek zu überprüfen.
Fragen Sie den Google-Lehrer, ob die Version von ↑ korrekt ist. (Ich habe auf den Artikel Laden von Integrationstestdaten mit DBUnit verwiesen.)
Gemäß dem Artikel, auf den ich verwiesen habe, verwendet die POI-Version 3.2-FINAL. Als ich versuchte, die Version zu wechseln, verschwand der Fehler.