java

Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen.
4
Antworten

Wie kann ich den Header "Host" in der Anfrage überschreiben, wenn Apache commons HttpClient verwendet wird?

Ich benutze Jakarta Commons HttpClient 3.1, schreibe ein Lasttest-Tool, das auf verschiedene Server abzielen muss und tue so, als ob es den richtigen virtuellen Host im HTTP-Server als Ziel hat. Dazu muss ich den HTTP-Header "Host" in der Anfrag...
18.05.2011, 13:57
4
Antworten

HIbernate lädt Unterklassen zusammen mit Klassen

Ich verwende Hibernate, um eine Verbindung zu meiner Datenbank herzustellen. Ich habe eine Vererbungsstruktur in meiner Anwendung. Das Problem ist, dass, wenn ich eine Abfrage wie "von Tier" mache, es einen linken äußeren Join für die Klasse Ani...
05.08.2010, 08:19
8
Antworten

___ answer3312808 ___

Obwohl es stark von der Anwendung und den bekannten Einschränkungen abhängt, würde ich die obige Nummer 1 bevorzugen. Der Grund ist, weil es dann explizit ist - es ist immer besser, eine explizite Situation zu haben als eine implizite - wie MIN_VALUE - nach meiner Erfahrung.

Eine andere Option ist ein Wrapper-Objekt, das den Ergebniswert als primitiven int enthält, aber auch einen Statuswert oder etwas Ähnliches hat. So könnte es etwa so aussehen:

%Vor%

Sie könnten auch eine Enum anstelle eines Boolean einfügen, um stattdessen einen Zustand zu haben, abhängig von der Komplexität des Problems. Wenn Sie sehen, dass dieses Element zusammengesetzte Informationen enthält - Informationsmengen, die aus einzelnen Schlüsseln oder ähnlichem bestehen - kann ein Containerobjekt oder Statusobjekt in diesen Fällen sehr nützlich sein.

    
___ answer3312826 ___

Ich stimme dafür, hier eine geprüfte Ausnahme zu werfen. Im Allgemeinen mag ich keine geprüften Ausnahmen, aber es scheint in diesem Fall vernünftig zu sein. Der Fall, in dem der Wert nicht vorhanden ist, muss getrennt von dem Fall gehandhabt werden, in dem der Wert vorhanden ist. Eine Ausnahme würde dies verdeutlichen.

Eigentlich ist Ihre Idee, eine keyExists-Methode hinzuzufügen, die beste Idee, die Sie auflisten, weil sie nicht darauf angewiesen ist, dass der Benutzer weiß, nach einem bestimmten Wert zu suchen. Wenn Sie diesen Weg gehen, können Sie eine Ausnahme als Backup-Plan auslösen, falls sich der Karteninhalt zwischen dem Aufruf von keyExists und dem Abruf ändert.

    
___ answer3312832 ___

Die erste Option ist meiner Meinung nach die sauberste. Magische Zahlen wie -1 und Integer.MIN_VALUE sind irgendwie unordentlich, besonders wenn die Werte nicht intuitiv sind. Das ist eine idiomatische C-Lösung, für die Java-Entwickler Sie hassen werden. Abhängig davon, was Sie tatsächlich verwenden, könnte dies auch eine "KeyNotFoundException" auslösen, wenn dies nur unter "außergewöhnlichen" Umständen geschieht.

    
___ answer3313703 ___

float ist unsicher, da nicht alle int-Werte genau als int-Werte dargestellt werden können. long ist eine bessere Option, da alle int-Werte sicher so lange gespeichert werden können und Sie viele weitere Werte für nicht gefunden haben.

Wenn Sie eine Map verwenden, haben Sie sowieso ein Integer-Objekt, also geben Sie das (oder null) zurück

Wenn Sie wirklich Primitive (für Effizienz?) verwenden möchten, schlage ich vor, dass Sie sich TObjectIntHashMap stattdessen. Dies verwendet primitive int-Werte. Um auf Abwesenheit zu prüfen, müssen Sie den Schlüssel containsKey () separat überprüfen.

    
___ qstntxt ___

Ich habe eine Funktion, die einen %code% -Wert für einen bestimmten Schlüssel (von %code% ) zurückgibt. Wenn der Schlüssel nicht existiert, möchte ich etwas zurückgeben, nach dem der Anrufer suchen kann. Es scheint, dass dies am häufigsten eine " gibt -1 zurück, wenn der Schlüssel nicht existiert " Art der Sache. Jedoch kann ich in diesem Fall -1 nicht für diesen Zweck reservieren, da negative Zahlen brauchbare Werte für Schlüssel sind, die tun existieren.

Die einzigen anderen Optionen, auf die ich gekommen bin, sind die folgenden:

  1. Ändern Sie den Rückgabetyp in %code% Wrapper-Klasse und prüfen Sie auf %code%
  2. Geben Sie etwas sehr unwahrscheinlich zurück, z. B. %code%
  3. Erstellen Sie eine zusätzliche Funktion %code% , die immer zuerst aufgerufen werden sollte
  4. Wechseln Sie zu %code% und verwenden Sie stattdessen %code%

Ich schreibe dies in Java, aber Leute mit ähnlichen sprachlichen Hintergründen können gerne Beiträge schreiben. Danke!

    
___ answer3312837 ___

Option 5: Eine Ausnahme auslösen

In diesem Fall würde ich jedoch dafür stimmen, die Integer-Klasse zu verwenden.

    
___ answer3314439 ___

Zwei Situationen sind typisch:

  1. Sie haben eine hohe Erwartung von einen Wert für ein bestimmtes finden Schlüssel.
  2. Sie sind sich nicht sicher, ob es sich um einen bestimmten Schlüssel handelt hat einen Wert gespeichert.

Wenn Annahme 1 falsch ist, dann wird wahrscheinlich ein Fehler angezeigt. Schützen Sie daher Ihre Annahme in der Zugriffsmethode mit einer Assertion.

Wenn 2 zutrifft, wie würden Sie sicher sein, was zurückgegeben wurde? Also stellen Sie eine Testmethode wie "keyExists" bereit und kennen Sie absolut, bevor Sie auf die Karte zugreifen.

In Fall 1 ist keine Überprüfung erforderlich, was viel sauberer ist, aber der Zugriff scheitert, wenn Sie falsch liegen. Bei speziellen Fällen wie -1 oder Integer.MIN_VALUE ist es sehr schwer sicher zu sein, dass sie nicht verwendet werden.

Sprachen wie Haskell, Scala und C # haben spezielle Typen, um die Anwesenheit / Abwesenheit eines Wertes zu vermitteln, der weit besser ist als der Gebrauch von Null (wenn Sie vergessen haben, werden Sie wahrscheinlich eine NullPointerException erhalten)

    
___ answer3312872 ___
  
  1. Ändern Sie den Rückgabetyp in die Integer-Wrapper-Klasse und prüfen Sie auf Null.
  2.   

Dies ist die häufigere Option.

    
___ answer3312849 ___

Ich denke, Sie sollten die Optionen # 1 und # 3 kombinieren, da dies mit dem Verhalten der zugrunde liegenden HashMap übereinstimmt. Aus HashMap's Methodendokumentation erhalten :

  

Gibt den Wert zurück, dem der angegebene Schlüssel in dieser Identitätshashzuordnung zugeordnet wurde, oder null, wenn die Zuordnung keine Zuordnung für diesen Schlüssel enthält. Ein Rückgabewert von null gibt nicht unbedingt an, dass die Zuordnung keine Zuordnung für den Schlüssel enthält. Es ist auch möglich, dass die Karte den Schlüssel explizit auf Null abbildet. Die Methode containsKey kann verwendet werden, um diese beiden Fälle zu unterscheiden.

    
___

Ich habe eine Funktion, die einen int -Wert für einen bestimmten Schlüssel (von HashMap<String, Integer> ) zurückgibt. Wenn der Schlüssel nicht existiert, möchte ich etwas zurückgeben, nach dem der Anrufer suchen kann. Es scheint, das...
22.07.2010, 19:44
2
Antworten

Warum wird meine WAR-Datei in Tomcat automatisch explodiert?

In Tomcat habe ich festgestellt, dass das .war automatisch explodiert. Ist dies das erwartete Verhalten?     
06.03.2011, 21:54
3
Antworten

Wie verwende ich den RxJava combineLatest Operator mit mehr als 9 Observablen

Ich benutze RxJava und möchte 12 verschiedene Observable mit dem Operator combineLatest kombinieren. Ich habe einen Funktionsprototyp gesehen, der eine Liste von Observablen und eine Implementierung von FuncN enthält, aber ich bin mir n...
07.08.2016, 07:25
2
Antworten

Wie wird JasperReports Viewer in einem JPanel / JFrame angezeigt?

Ich bin ein Neuling bei der Verwendung von JasperReports . In meiner Swing -Anwendung möchte ich JRViewer in einem JPanel oder JFrame anzeigen. Kann mir jemand helfen?     
17.06.2010, 07:21
3
Antworten

Wie finde ich die Größe eines Iterable Object? [Duplikat]

Ich schreibe gerade einen MR-Job. Aber ich stehe mit einem Problem fest, das sich auf ein Iterable-Objekt bezieht. Ich muss seine Größe finden. Ich habe es auf ein List-Objekt geworfen, aber das war falsch. (List kann in Iterable umgewandelt w...
10.07.2012, 11:56
2
Antworten

wo ist org.apache.derby.jdbc.ClientDriver?

Ich habe das Glas der Core Apache Derby-Datenbank-Engine heruntergeladen, die auch den integrierten JDBC-Treiber (10.9.1.0) enthält. . Dieses Jar enthält jedoch nicht die .class -Datei von ClientDriver im jdbc-Paket. Warum das ? Wo finde...
18.07.2012, 03:34
2
Antworten

So legen Sie den Inhaltstyp für das Servlet fest

Ich verwende ein einfaches Servlet, das Dokumentinhalt von der Datenbank als Byte-Array zurücksendet. Ich möchte einen Inhalt festlegen type so dass es eine entsprechende Erweiterung hat, während es über einen Aufruf von doGet () abgerufen wir...
07.03.2011, 05:30
3
Antworten

Aufwärmen von Java-Anwendungen mit hohem Durchsatz

Ich habe kürzlich über Szenarien erfahren, die das Aufwärmen einer App erfordern (mit hohem Durchsatz), bevor sie damit beginnen, echte Anfragen zu bedienen. Die Logik dahinter war es, JIT zu erlauben, seine Leistungszauberei zu machen! Ist d...
11.02.2010, 19:26