How to check type of variable in Java?

java

Solution

Java is a statically typed language, so the compiler does most of this checking for you. Once you declare a variable to be a certain type, the compiler will ensure that it is only ever assigned values of that type (or values that are sub-types of that type).

The examples you gave (`int`, array, `double`) these are all primitives, and there are no sub-types of them. Thus, if you declare a variable to be an `int`:

int x;

You can be sure it will only ever hold `int` values.

If you declared a variable to be a `List`, however, it is possible that the variable will hold sub-types of `List`. Examples of these include `ArrayList`, `LinkedList`, etc.

If you did have a `List` variable, and you needed to know if it was an `ArrayList`, you could do the following:

List y;
...
if (y instanceof ArrayList) { 
  ...its and ArrayList...
}

However, if you find yourself thinking you need to do that, you may want to rethink your approach. In most cases, if you follow object-oriented principles, you will not need to do this. There are, of course, exceptions to every rule, though.

Problem

How can I check to make sure my variable is an int, array, double, etc...? Edit: For example, how can I check that a variable is an array? Is there some function to do this?

Original source

Related problems