Java принадлежность классу проверка is

Проверка принадлежности к классу

В Java можно явно проверить, к какому классу принадлежит объект. Выражение foo instanceof Fooистинно, если объект foo принадлежит классу Foo или его наследнику, или реализует интерфейс Foo(или, в общем виде, наследует класс, который реализует интерфейс, который наследует Foo).

Далее, функция getClass(), определённая для всех объектов, выдаёт объект типа Class. Для каждого класса создаётся не более одного описывающего его объекта типа Class, поэтому эти объекты можно сравнивать. Так, например, foo.getClass() == bar.getClass() будет истинно, если объекты foo и bar принадлежат в точности к одному классу (но это не означает что это два одинаковых объекта).

Кроме того, объект типа Class любого типа можно получить так: Integer.class, Object.class.

Однако прямое сравнение классов не всегда является оптимальным средством проверки на принадлежность к классу. Зачастую вместо него используют функцию isAssignableFrom(). Эта функция определена у объекта типа Class и принимает объект типа Class в качестве параметра. Таким образом, вызов Foo.class.isAssignableFrom(Bar.class) вернёт true в случае, если Fooявляется предком класса Bar. Так как все объекты являются потомками типа Object, вызовObject.class.isAssignableFrom() всегда вернёт true.

В паре с упомянутыми функциями объекта типа Class используются также функции isInstance()(эквивалентно instanceof), а также cast() (преобразует параметр в объект выбранного класса).

Библиотеки классов

  • JDK — содержит набор базовых классов для всего ПО на платформах Java SE и Java EE
  • CDK — для создания химического ПО
  • MARF — модульная библиотека для распознавания аудио
  • JDOM — реализация XML DOM, учитывающая особенности платформы Java.

Средства разработки по

  • JDK — помимо набора библиотек для платформ Java SE и Java EE содержит компилятор командной строки javac и набор утилит, также работающих в режиме командной строки.
  • NetBeans IDE — свободная интегрированная среда разработки для всех платформ Java — Java ME,Java SE и Java EE. Пропагандируется Sun Microsystems, разработчиком Java, как базовое средство для разработки ПО на языке Java и других языках (C, C++, PHP, Fortran и др.).
  • Eclipse IDE — свободная интегрированная среда разработки для Java SE, Java EE и Java ME[40] . Пропагандируется IBM, одним из важнейших разработчиков корпоративного ПО, как базовое средство для разработки ПО на языке Java и других языках (C, C++, Ruby, Fortran и др.)
  • IntelliJ IDEA — среда разработки для платформ Java SE, Java EE и Java ME. Разработчик — компания JetBrains. Распространяется в двух версиях: свободной бесплатной (Community Edition) и коммерческой проприетарной (Ultimate Edition).
  • JDeveloper — среда разработки для платформ Java SE, Java EE и Java ME. Разработчик — компания Oracle.
  • BlueJ — Среда разработки программного обеспечения на языке Java, созданная в основном для использования в обучении, но также подходящая для разработки небольших программ.
Читайте также:  Html div class clear div

Java Virtual Machine (сокращенно Java VM, JVM) — виртуальная машина Java — основная часть исполняющей системы Java, так называемой Java Runtime Environment (JRE). Виртуальная машина Javaинтерпретирует и исполняет Байт-код Java, предварительно созданный из исходного текста Java-программы компилятором Java (javac). JVM может также использоваться для выполнения программ, написанных на других языках программирования. Например, исходный код на языке Ada может быть откомпилирован в байт-код Java, который затем может выполниться с помощью JVM.

JVM является ключевым компонентом платформы Java. Так как виртуальные машины Java доступны для многих аппаратных и программных платформ, Java может рассматриваться и как связующее программное обеспечение, и как самостоятельная платформа, отсюда принцип «написано однажды, запускается везде» (write once, run anywhere). Использование одного байт-кода для многих платформ позволяет описать Java как «скомпилировано однажды, запускается везде» (compile once, run anywhere).

Источник

Java Type Checking: How to Check Class Type of an Object in Java

Learn how to check the class type of an object in Java with various methods such as instanceof operator, getClass() method, isInstance() method, and java.lang.Object.getClass() method.

  • instanceof operator
  • getClass() method
  • isInstance() method
  • java.lang.Object.getClass() method
  • Inner classes
  • Other helpful Java code examples for checking class types
  • Conclusion
  • How to check class type in Java?
  • How to check datatype in Java?
  • What is type of class in Java?
  • How to determine object type in Java?

Java is an object-oriented language that allows checking the class type of objects. Checking object type is important when processing a collection that contains more than one type of object. In this blog post, we will discuss various ways to check the class type of an object in Java.

Читайте также:  Php log file wordpress

instanceof operator

The instanceof operator is used to check if an object is of a particular class or not. The instanceof operator works on the principle of the is-a relationship. It returns a boolean value, which is true if the object is an instance of the specified class or any of its subclasses.

Here is an example of using the instanceof operator:

getClass() method

The getClass() method can be used to determine the type of an object at runtime. The getClass() method shows the class of an object at runtime. The java.lang.Object.getClass() method only works for reference types. It returns a Class object that represents the runtime class of the object.

Here is an example of using the getClass() method:

isInstance() method

The isInstance() method of java.lang.Class can also be used to find the type of an object at runtime. The isInstance() method can determine if an object is an instance of a particular class. It returns a boolean value, which is true if the object is an instance of the specified class or any of its subclasses.

Here is an example of using the isInstance() method:

if (String.class.isInstance(obj)) < // do something >

java.lang.Object.getClass() method

The java.lang.Object.getClass() method can be used to get the Class object of an instance. The getClass() method can also be used to get the name of the class. The getClass() method can be used in combination with the getName() method to get the fully qualified class name.

Here is an example of using the java.lang.Object.getClass() method:

Class c = obj.getClass(); String className = c.getName(); 

Inner classes

There are four types of inner classes in java : nested inner class, method local inner class es, anonymous inner classes, and static nested classes . Inner classes can be used to encapsulate logic and data within a class.

Читайте также:  Coding Beauty Tutorial

Here is an example of inner classes:

Other helpful Java code examples for checking class types

Conclusion

Checking object type is an essential aspect of Java programming. There are various ways to check the class type of an object in Java, such as instanceof operator, getClass() method, isInstance() method, and java.lang.Object.getClass() method. Using polymorphism and inheritance, checking object types can be made more accessible. Checking object type can help avoid runtime errors , and using generics can also help with checking object types. The isAssignableFrom() method can be used to check if a class is a subclass of another class.

Источник

Оцените статью