Question: In color schemes, I would like to sort the hues, but would like to avoid 'big gaps', i.e. prefer `350,354,2,10,15` over `2,10,15,350,354` (when expressed as 0-360 degree values). What's the best approach of doing that (eg in php)? Is it finding the 'biggest gap' and start after that? Any better ideas?

Answer: 
Unless you specifically want to check only the very first superclass, it would be better to use:

```
return (action instanceof logic.UserBehavior);

```

Your method would be better with this:

```
action.getClass().getSuperClass().name().equals("logic.UserBehavior");

```

The call to `toString()` is not the best idea.

Or better yet, as posted by [Ulrik](https://stackoverflow.com/users/685961/ulrik):

```
action.getClass().getSuperClass() == logic.UserBehavior.class

```
`(action instanceof logic.UserBehaviour)` will return true if action is an object of a type that extends UserBehavior.

An excerpt from <http://download.oracle.com/javase/tutorial/java/nutsandbolts/op2.html>

> 
> The Type Comparison Operator
>  instanceof
> 
> 
> The instanceof operator compares an
>  object to a specified type. You can
>  use it to test if an object is an
>  instance of a class, an instance of a
>  subclass, or an instance of a class
>  that implements a particular
>  interface.
> 
> 
> The following program, InstanceofDemo,
>  defines a parent class (named Parent),
>  a simple interface (named
>  MyInterface), and a child class (named
>  Child) that inherits from the parent
>  and implements the interface.
> 
> 
> 

```
class InstanceofDemo {
  public static void main(String[] args) {

    Parent obj1 = new Parent();
    Parent obj2 = new Child();

    System.out.println("obj1 instanceof Parent: " + (obj1 instanceof Parent));
    System.out.println("obj1 instanceof Child: " + (obj1 instanceof Child));
    System.out.println("obj1 instanceof MyInterface: " + (obj1 instanceof MyInterface));
    System.out.println("obj2 instanceof Parent: " + (obj2 instanceof Parent));
    System.out.println("obj2 instanceof Child: " + (obj2 instanceof Child));
    System.out.println("obj2 instanceof MyInterface: " + (obj2 instanceof MyInterface));
  }
}

class Parent{}
class Child extends Parent implements MyInterface{}
interface MyInterface{} 

```

Output:

```
obj1 instanceof Parent: true
obj1 instanceof Child: false
obj1 instanceof MyInterface: false
obj2 instanceof Parent: true
obj2 instanceof Child: true
obj2 instanceof MyInterface: true

```

When using the instanceof operator, keep in mind that null is not an instance of anything.