type istype java typeof

istype - Obtener typeof en Java



type object java (4)

Dado que esta es la primera pregunta de Google, typeof alternativa de JavaScript de estilo aquí también:

myObject.getClass().getName() // String

Soy un novato de Java. Estoy tratando de averiguar si un número es un Doble con algo como esto:

if ( typeof ( items.elementAt(1) )== Double ) { sum.add( i, items.elementAt(1)); }

Agradecería que alguien me dijera cómo reorganizar la sintaxis para que funcione correctamente.


La reflexión es más lenta, pero funciona para una situación en la que desea saber si es de tipo Perro o Gato y no una instancia de Animal. Entonces harías algo como:

if(null != items.elementAt(1) && items.elementAt(1).getClass().toString().equals("Cat")) { //do whatever with cat.. not any other instance of animal.. eg. hideClaws(); }

No decir que la respuesta anterior no funciona, excepto que la parte de comprobación nula es necesaria.

Otra forma de responder es usar medicamentos genéricos y se garantiza que tendrá el doble como cualquier elemento de los artículos.

List<Double> items = new ArrayList<Double>();


Prueba esto:

if (items.elementAt(1) instanceof Double) { sum.add( i, items.elementAt(1)); }


Use expresiones regulares para lograr esta tarea. Por favor, consulte el siguiente código.

public static void main(String[] args) { try { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter your content: "); String data = reader.readLine(); boolean b1 = Pattern.matches("^//d+$", data); boolean b2 = Pattern.matches("[0-9a-zA-Z([+-]?//d*//.+//d*)]*", data); boolean b3 = Pattern.matches("^([+-]?//d*//.+//d*)$", data); if(b1) { System.out.println("It is integer."); } else if(b2) { System.out.println("It is String. "); } else if(b3) { System.out.println("It is Float. "); } } catch (IOException ex) { Logger.getLogger(TypeOF.class.getName()).log(Level.SEVERE, null, ex); } }