Получение typeof в Java
Я новичок Java. Я пытаюсь выяснить, является ли число двойным с чем-то вроде этого:
if ( typeof ( items.elementAt(1) )== Double ) {
sum.add( i, items.elementAt(1));
}
был бы признателен, если бы кто-нибудь мог сказать мне, как изменить синтаксис, чтобы сделать эту работу правильно.
4 ответов:
отражение медленнее, но работает для ситуации, когда вы хотите знать, относится ли это к типу собаки или кошки, а не к экземпляру животного. Так что вы бы сделали что-то вроде:
if(null != items.elementAt(1) && items.elementAt(1).getClass().toString().equals("Cat")) { //do whatever with cat.. not any other instance of animal.. eg. hideClaws(); }не говоря ответ выше не работает, за исключением нулевой проверки части необходимо.
еще один способ ответить на этот вопрос-использовать дженерики,и вы гарантированно будете иметь двойной элемент элементов.
List<Double> items = new ArrayList<Double>();
используйте регулярное выражение для достижения этой задачи. Пожалуйста, обратитесь к приведенному ниже коду.
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); } }
Так как это первый вопрос от Google, я добавлю стиль JavaScript
typeofальтернатива здесь:myObject.getClass().getName() // String
Comments