Ich konfrontiert ein seltsames Java-Verhalten zur Laufzeit. Alle Informationen sind auf dem Screenshot. Meine Anwendung schlägt fehl. Überraschenderweise kann es bei gleichen Eingabedaten zu unterschiedlichen Zeiten korrekt verarbeitet werden. Kannst du mir erklären, was die Ursache für dieses seltsame Verhalten ist? Ich benutze jdk 1.7.0_79 Hier vollständigen Codeteil id = "common.dto.IdsFilter"
Weird Java-Verhalten
private String[] splitPackageAndNameParts(String id) {
// check string not empty
if (StringUtils.isEmpty(id)) {
throw new IllegalArgumentException("Unexpected id : " + id);
}
// get last point index
int index = id.lastIndexOf(".");
// check index
if (index == 0 || index >= (id.length() - 1)) {
throw new IllegalArgumentException("Unexpected id : " + id);
}
// split
String pkgPart = index < 0 ? "" : id.substring(0, index + 1);
String namePart = id.substring(index + 1, id.length());
// return result
return new String[]{pkgPart, namePart};
}
Das richtige Ergebnis pkgPart = "common.dto."
sein soll, aber zur Laufzeit kehrt "common.dto"
(ohne Punkt)
http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557# 285557 –
Wir brauchen * tatsächlichen Code * hier. Wir können Ihnen nicht mit einem Screenshot helfen, da * wir * das nicht in unsere Kopien von IntelliJ einstecken können, um zu sehen, was vor sich geht. – Makoto
Bearbeiten Sie Ihre Antwort, um zu verdeutlichen, welche Eingabedaten Sie verwenden, wie das erwartete Verhalten aussieht und welche Fehlermeldung Sie erhalten. Und poste den Code, den du hast (kein Screenshot, aber echter Java-Code), damit wir dir helfen können. –