저는 Java 초보자입니다. 나는 숫자가 다음과 같은 Double인지 알아 내려고 노력하고 있습니다.
if ( typeof ( items.elementAt(1) )== Double ) {
sum.add( i, items.elementAt(1));
}
누군가가 올바르게 작동하도록 구문을 재정렬하는 방법을 알려 주면 감사하겠습니다.
저는 Java 초보자입니다. 나는 숫자가 다음과 같은 Double인지 알아 내려고 노력하고 있습니다.
if ( typeof ( items.elementAt(1) )== Double ) {
sum.add( i, items.elementAt(1));
}
누군가가 올바르게 작동하도록 구문을 재정렬하는 방법을 알려 주면 감사하겠습니다.
Object#GetType()
반환하는 방법을 Type
. 그런 다음이를 사용하여 typeof()
. 이 경우 items.elementAt(1).GetType() == typeof(double)
.
답변:
반사는 느리지 만 Animal 인스턴스가 아닌 Dog 또는 Cat 유형인지 알고 싶은 상황에서 작동합니다. 그래서 당신은 다음과 같이 할 것입니다.
if(null != items.elementAt(1) && items.elementAt(1).getClass().toString().equals("Cat"))
{
//do whatever with cat.. not any other instance of animal.. eg. hideClaws();
}
위의 대답을 말하지 않으면 null 검사 부분이 필요한 경우를 제외하고는 작동하지 않습니다.
대답하는 또 다른 방법은 제네릭을 사용하는 것이며 항목의 모든 요소로 Double을 보장합니다.
List<Double> items = new ArrayList<Double>();
.getClass().toString()
단방향 종속성 주입으로 인해 클래스를 가져올 수 없기 때문에 +1합니다 . 고마워.
이 작업을 수행하려면 정규식을 사용하십시오. 아래 코드를 참조하십시오.
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);
}
}
object o = new object(); Type t = typeof(o);
라는 컴파일러 오류가 발생o is a variable but is used like a type
합니다. 이 질문의 이름은 잘못된 것입니다 ...