Добрый день! Не могу понять, почему если тип double то вызывается два метода (и для дабл и для строкового).
Также не проходит требование "Если введенная строка может быть корректно преобразована в число типа Integer и полученное число меньше или равно 0 или больше или равно 128 - должен быть вызван метод print(Integer value).", хотя с инт как раз все корректно выводится.
package com.javarush.task.task15.task1519;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Разные методы для разных типов
*/
public class Solution {
public static void main(String[] args) throws IOException {
//напиште тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<>();
boolean isExit=false;
String string;
while (isExit==false) {
String str = reader.readLine();
list.add(str);
isExit=str.equals("exit");
}
reader.close();
for (String str : list) {
try {
for (int i = 0; i < str.length(); i++) {
char aChar = '.';
if (str.charAt(i) == aChar) {
print(Double.parseDouble(str));
}
}
if ((Short.parseShort(str) > 0) && (Short.parseShort(str) < 128)) {
print(Short.parseShort(str));
} else if (Integer.parseInt(str) <= 0 || (Integer.parseInt(str) >= 128)) {
print(Integer.parseInt(str));
}
}
catch (Exception e) {
print(str);
}
}
}
public static void print(Double value) {
System.out.println("Это тип Double, значение " + value);
}
public static void print(String value) {
System.out.println("Это тип String, значение " + value);
}
public static void print(short value) {
System.out.println("Это тип short, значение " + value);
}
public static void print(Integer value) {
System.out.println("Это тип Integer, значение " + value);
}
}