En Java, ¿por qué la instancia de una palabra clave y no un método?

En Java, ¿por qué es instanceofuna palabra clave y no un método?

public static void main(String args[]) {
    Simple1 s = new Simple1();  
    System.out.println(s instanceof Simple); // true
}
Respuesta 1

Bueno, no es el método Class.isInstance... pero básicamente se trata de una operación de nivel inferior que tiene un apoyo específico VM, así que tiene sentido para que sea un operador. Aparte de cualquier otra cosa, no hay necesidad real de obtener la Classreferencia para hacer la prueba: el código de bytes puede representar la operación de manera más eficiente.

Tenga en cuenta que podría hacer el mismo caso para muchos operadores ... ¿por qué necesitamos operadores aritméticos en lugar de llamarint x = Integer.add(y, z); por ejemplo? Hay beneficios tanto en términos de conveniencia como de rendimiento (el último de los cuales un JIT inteligente podría eliminar, por supuesto) al tener operadores.

Respuesta: 2

"instanceof" es un operador en Java y se utiliza para comparar un objeto con un tipo especificado. Se proporciona como operador para que pueda escribir expresiones más claras.

También isInstance es el método presente

Respuesta: 3
  1. instanceof La palabra clave es un operador binario utilizado para probar si un objeto (instancia) es un subtipo de un tipo dado.

  2. Es un operador que devuelve verdadero si el lado izquierdo de la expresión es una instancia del nombre de la clase en el lado derecho.

Todo el propósito de tenerlo es probar los tipos de objeto antes de realizar cualquier operación específica de Objeto, y ser binario lo hace realmente fácil. También hay un método, pero rara vez se usa. Por ejemplo, puede usarlo para escribir un método que verifique si dos objetos escritos arbitrariamente son compatibles con la asignación, como:

public boolean areObjectsAssignable(Object left, Object right) {
    return left.getClass().isInstance(right);
} 

Consulte esta pregunta para obtener más ideas,

Operador Java isInstance vs instanceOf

Respuesta: 4

Tengo una clase que acepta un tipo genérico, y quiero anular el método equals de una manera no incómoda (es decir, algo que se ve limpio y tiene una cantidad mínima de código, pero para un uso muy general ...

La API estándar no incluye una implementación AtomicBitSet. Podría rodar el mío sobre AtomicIntegerArray, pero preferiría que no. ¿Alguien sabe de una implementación existente lanzada ...

Quiero dibujar una imagen PARCIALMENTE transparente encima de otra (Hacer sombras sobre las cosas). Actualmente estoy usando la clase Graphics2D de java para renderizar, me han dicho que configure el compuesto en ...

Cell cell = row.createCell (1); cell.setCellValue (rdf.getEffectiveDate ()); cell.getCellStyle (). setDataFormat (HSSFDataFormat.getBuiltinFormat ("d-mmm-aa")); celda = row.createCell (2); ...