{"id":4630,"date":"2019-10-21T00:55:50","date_gmt":"2019-10-20T15:55:50","guid":{"rendered":"https:\/\/chat-messenger.com\/?p=4630"},"modified":"2023-11-13T01:14:20","modified_gmt":"2023-11-12T16:14:20","slug":"java-instanceof","status":"publish","type":"post","link":"https:\/\/chat-messenger.com\/de\/blog\/java\/java-instanz-von","title":{"rendered":"Pr\u00fcfen des Typs einer Java-Variablen mit instanceof"},"content":{"rendered":"<h2>Variablentyp pr\u00fcfen<\/h2>\n\n\n\n<p>Vorstellung eines Beispielprogramms zur \u00dcberpr\u00fcfung des Typs einer Variablen in Java.<\/p>\n\n\n\n<p>Java ist eine statisch typisierte Sprache, die Typen explizit deklariert, sodass es keine M\u00f6glichkeit gibt, die Typen so ausf\u00fchrlich zu \u00fcberpr\u00fcfen. Bei der Verwendung geerbter Objekte kann jedoch eine Typpr\u00fcfung erforderlich sein.<\/p>\n\n\n\n<p>So \u00fcberpr\u00fcfen Sie Typen in Java <strong>Instanz von<\/strong> Mithilfe von Operatoren k\u00f6nnen Sie Klassen und Schnittstellen mit if-Anweisungen usw. auswerten, wie unten gezeigt.<\/p>\n\n\n\n<div class=\"wp-block-group is-style-big_icon_good\"><div class=\"wp-block-group__inner-container\">\n<p><em>Variable<\/em> Instanz der Klasse<\/p>\n\n\n\n<p><em>Variable<\/em> Instanz der Schnittstelle<\/p>\n<\/div><\/div>\n\n\n\n<p><strong>Instanz von<\/strong> Auf der rechten Seite von kann ein Klassenname oder Schnittstellenname angegeben werden.<strong>Instanz von<\/strong> Der R\u00fcckgabewert ist ein boolescher Wert. Wenn er wahr ist, handelt es sich bei der Variablen um die angegebene Klasse oder Schnittstelle.<\/p>\n\n\n\n<div class=\"recommend\">\n<p><a href=\"javascript:clickAdd()\">Chat&amp;Messenger<\/a> ist Groupware, die Business-Chat, Webkonferenzen, Dateifreigabe, Terminverwaltung, Dokumentenverwaltung, Konferenzraumreservierung und Anwesenheitsverwaltung auf benutzerfreundliche Weise integriert. Perfekte Sicherheit f\u00fcr Unternehmen,<mark>Kostenlos erh\u00e4ltlich!<\/mark><\/p>\n<a href=\"javascript:clickAdd()\"><img style=\"margin:10px;box-shadow: var(--swl-box_shadow);\" src=\"\/images\/cam-top-banner.png\" width=\"700\"><\/a>\n<\/div>\n\n\n\n<h2>Beispielprogramm<\/h2>\n\n\n\n<p>Beginnen wir mit dem einfachsten Muster. Gibt true zur\u00fcck, wenn die Variable i eine Ganzzahl ist, andernfalls false.<\/p>\n\n\n\n<h4>Beispielcode<\/h4>\n\n\n\n<div class=\"hcb_wrap\" data-no-translation=\"\"><pre class=\"prism line-numbers lang-java\" data-lang=\"Java\"><code>public static void integerSample() {\n    Integer i = 100;\n    boolean result = i instanceof Integer;\n    System.out.println(result);\n}<\/code><\/pre><\/div>\n\n\n\n<h4>Ausgabeergebnis<\/h4>\n\n\n\n<div class=\"hcb_wrap\" data-no-translation=\"\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>true<\/code><\/pre><\/div>\n\n\n\n<p>Die Variable i ist eine ganze Zahl, daher ist das Ergebnis wahr. Dies ist jedoch zu offensichtlich und ich wei\u00df nicht, wozu die Instanz von dient. Machen wir es also etwas komplizierter.<\/p>\n\n\n\n<h2>Effektive Verwendung von Instanzen<\/h2>\n\n\n\n<p>Eine effektive Verwendung von \u201einstanceof\u201c besteht darin, zu bestimmen, zu welcher untergeordneten Klasse eine Variable geh\u00f6rt.<\/p>\n\n\n\n<h4>Beispielcode<\/h4>\n\n\n\n<p>Im Beispielcode erstellen wir eine Tierklasse Animal, eine Dog-Klasse, die von der Tierklasse erbt, und eine Cat-Klasse und legen nach dem Erstellen einer Instanz Variablen in der Play-Methode fest. <strong>Instanz von<\/strong> Die Konsolenausgabe wird basierend auf der Beurteilung verzweigt. <\/p>\n\n\n\n<div class=\"hcb_wrap\" data-no-translation=\"\"><pre class=\"prism line-numbers lang-java\" data-lang=\"Java\"><code>class Animal {} \nclass Dog extends Animal {}\nclass Cat extends Animal {}\n\npublic class Main {\n    public static void main(String[] args) {\n        instanceofSample();\n    }\n    \n    static void instanceofSample() {\n        Animal dog = new Dog();\n        play(dog);\n        Animal cat = new Cat();\n        play(cat);\n    }\n    \n    static void play(Animal animal) {\n        if (animal instanceof Dog) {\n            System.out.println(&quot;\u304a\u6563\u6b69\u3059\u308b&quot;);\n        } else {\n            System.out.println(&quot;\u732b\u3058\u3083\u3089\u3057\u3067\u904a\u3076&quot;);\n        }\n    }\n}<\/code><\/pre><\/div>\n\n\n\n<h4>Ausgabeergebnis<\/h4>\n\n\n\n<div class=\"hcb_wrap\" data-no-translation=\"\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>\u304a\u6563\u6b69\u3059\u308b\n\u732b\u3058\u3083\u3089\u3057\u3067\u904a\u3076<\/code><\/pre><\/div>\n\n\n\n<p>Der entscheidende Punkt bei der Spielmethode besteht darin, dass unklar ist, ob es sich bei dem als Argument \u00fcbergebenen Tier um einen Hund oder eine Katze handelt.<\/p>\n\n\n\n<p><strong>Instanz von<\/strong> Jetzt k\u00f6nnen Sie auch die in der Oberklasse (Tier) enthaltenen Unterklasseninstanzen (Hund oder Katze) \u00fcberpr\u00fcfen und sie so verwenden.<\/p>\n\n\n\n<h2>\u00dcberpr\u00fcfen Sie, ob eine bestimmte Schnittstelle implementiert ist<\/h2>\n\n\n\n<p>Sie k\u00f6nnen \u00fcberpr\u00fcfen, ob eine bestimmte Schnittstelle f\u00fcr die Variable implementiert ist, auf die \u201einstanceof\u201c abzielt. Sie k\u00f6nnen es beispielsweise so verwenden.<\/p>\n\n\n\n<h4>Beispielcode<\/h4>\n\n\n\n<p>Im folgenden Beispielcode werden Klassen f\u00fcr Herrn Sato und Herrn Suzuki erstellt und die Schnittstelle \u201eAuto\u201c unter der Annahme implementiert, dass nur Herr Suzuki ein Auto besitzt. Die Methode goShopping() geht vom Prozess des Einkaufens aus, implementiert jedoch Car oder verzweigt die Konsolenausgabe basierend auf der Instanz von.<\/p>\n\n\n\n<div class=\"hcb_wrap\" data-no-translation=\"\"><pre class=\"prism line-numbers lang-java\" data-lang=\"Java\"><code>interface Car {}\nclass Sato {}\nclass Suzuki implements Car {}\n\npublic class Main {\n    public static void main(String[] args) throws Exception {\n        instanceofSample();\n    }\n    \n    static void instanceofSample() {\n        Sato sato = new Sato();\n        goShopping(sato);\n\n        Suzuki suzuki = new Suzuki();\n        goShopping(suzuki);\n    }\n    \n    static void goShopping(Object human) {\n        if (human instanceof Car) {\n            System.out.println(&quot;\u8eca\u3067\u884c\u304f&quot;);\n        } else {\n            System.out.println(&quot;\u6b69\u3044\u3066\u884c\u304f&quot;);\n        }\n    }\n}<\/code><\/pre><\/div>\n\n\n\n<h4>Ausgabeergebnis:<\/h4>\n\n\n\n<div class=\"hcb_wrap\" data-no-translation=\"\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>\u6b69\u3044\u3066\u884c\u304f\n\u8eca\u3067\u884c\u304f<\/code><\/pre><\/div>\n\n\n\n<p>Man erkennt, dass sich die Verarbeitung verzweigt, je nachdem, ob Car implementiert ist oder nicht.<\/p>","protected":false},"excerpt":{"rendered":"<p>\u00dcberpr\u00fcfen des Typs einer Variablen Einf\u00fchrung in ein Beispielprogramm zum \u00dcberpr\u00fcfen des Typs einer Variablen in Java. Java deklariert explizit Typen [\u2026]<\/p>","protected":false},"author":1,"featured_media":9054,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":""},"categories":[19],"tags":[],"_links":{"self":[{"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/posts\/4630"}],"collection":[{"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/comments?post=4630"}],"version-history":[{"count":6,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/posts\/4630\/revisions"}],"predecessor-version":[{"id":9049,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/posts\/4630\/revisions\/9049"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/media\/9054"}],"wp:attachment":[{"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/media?parent=4630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/categories?post=4630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/tags?post=4630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}