Is Type Compatible : Class « Reflection « Java Tutorial

//$Id: 1540 2007-01-19 12:24:10Z janb $
//Copyright 2006 Mort Bay Consulting Pty. Ltd.
//Licensed under the Apache License, Version 2.0 (the "License");
//you may not use this file except in compliance with the License.
//You may obtain a copy of the License at 
//Unless required by applicable law or agreed to in writing, software
//distributed under the License is distributed on an "AS IS" BASIS,
//See the License for the specific language governing permissions and
//limitations under the License.

import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.List;

public class Utils {

  public static boolean isTypeCompatible(Class formalType, Class actualType, boolean strict) {
    if (formalType == null && actualType != null)
      return false;
    if (formalType != null && actualType == null)
      return false;
    if (formalType == null && actualType == null)
      return true;

    if (strict)
      return formalType.equals(actualType);
      return formalType.isAssignableFrom(actualType);


7.1.1.Get class name for various object
7.1.2.Create new instance
7.1.3.Get Canonical Name for a class
7.1.4.Demonstrates the use of getDeclaringClass()
7.1.5.Demonstrates the use of instance comparisons
7.1.6.Demonstrates usage of various class information methods
7.1.7.Demonstrates how to get declaration information on a Class
7.1.8.Demonstrates Dynamic class type checking
7.1.9.Demonstrates how to set public field objects
7.1.10.Demonstrates fetching nested class info from a Class object
7.1.11.Demonstration of how to obtain instances of java.lang.Class
7.1.12.Demonstrates getting immediate superclass info
7.1.13.Get declared method by name and parameter type
7.1.14.get class from an object
7.1.15.Returns the name of a class without the package name
7.1.16.Class comparator: compare and sort classes and their superclasses.
7.1.17.Is Type Compatible
7.1.18.Is the Same Signature
7.1.19.Determine whether the supplied string represents a well-formed fully-qualified Java classname.