Java Object Type Case castOrThrowError(Class clazz, T1 object, String messageTemplate)

Here you can find the source of castOrThrowError(Class clazz, T1 object, String messageTemplate)

Description

Attempts to cast an object to a given class, and if that does not succeed, throws an error with a message generated from a template following the format conventions of String#format(String,Object) , with formatting arguments being the object being cast, and the expected and actual received classes' simple names, in this order.

License

Open Source License

Parameter

Parameter Description
clazz the class to be cast to
object the object to be cast
messageTemplate the message template from which an error message is generated
T1 object type
T2 class type

Return

the cast object

Declaration

public static <T1, T2> T2 castOrThrowError(Class<T2> clazz, T1 object, String messageTemplate) 

Method Source Code

//package com.java2s;
/*//from  w w  w . j a v  a 2s.c  om
 * Copyright (c) 2013, SRI International
 * All rights reserved.
 * Licensed under the The BSD 3-Clause License;
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at:
 * 
 * http://opensource.org/licenses/BSD-3-Clause
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 
 * Redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer.
 * 
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * 
 * Neither the name of the aic-util nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 */

public class Main {
    /**
     * Attempts to cast an object to a given class,
     * and if that does not succeed, throws an error with a message generated from a template
     * following the format conventions of {@link String#format(String, Object...)},
     * with formatting arguments being the object being cast, and the expected and actual received classes' simple names,
     * in this order.
     * @param clazz the class to be cast to
     * @param object the object to be cast
     * @param messageTemplate the message template from which an error message is generated
     * @return the cast object
     * @param <T1> object type
     * @param <T2> class type
     */
    public static <T1, T2> T2 castOrThrowError(Class<T2> clazz, T1 object, String messageTemplate) {
        T2 result;
        try {
            result = clazz.cast(object);
        } catch (ClassCastException e) {
            String message = String.format(messageTemplate, object, clazz.getSimpleName(),
                    object.getClass().getSimpleName());
            throw new Error(message);
        }
        return result;
    }
}

Related

  1. castObject(Object ob)
  2. castOrDefault(Class type, Object value, T defaultValue, boolean allowNull)
  3. castOrDefault(Object o, Class type, T def)
  4. castOrNull(Object o, Class clazz)
  5. castOrNull(Object o, Class cls)
  6. castSafe(Class inClass, Object inValue, T inDefault)
  7. caststring1(String tmpq)
  8. castTo(Object o, Class cls)
  9. castToArray(Object object)