Java Object Type Case castWithGenericsOrNull(Class base, Object obj)

Here you can find the source of castWithGenericsOrNull(Class base, Object obj)

Description

Cast an object at a base class, but return a subclass (for Generics!).

License

Open Source License

Parameter

Parameter Description
B Base type to cast at
T Derived type returned
base Base class to cast at
obj Object

Return

Cast object or null.

Declaration

@SuppressWarnings("unchecked")
public static <B, T extends B> T castWithGenericsOrNull(Class<B> base,
        Object obj) 

Method Source Code

//package com.java2s;
/*/*ww w.java 2  s .  c  o m*/
 This file is part of ELKI:
 Environment for Developing KDD-Applications Supported by Index-Structures

 Copyright (C) 2013
 Ludwig-Maximilians-Universit?t M?nchen
 Lehr- und Forschungseinheit f?r Datenbanksysteme
 ELKI Development Team

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU Affero General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU Affero General Public License for more details.

 You should have received a copy of the GNU Affero General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

public class Main {
    /**
     * Cast an object at a base class, but return a subclass (for Generics!).
     * 
     * The main goal of this is to allow casting an object from e.g. "
     * <code>List</code>" to "<code>List&lt;Something&gt;</code>" without having
     * to add SuppressWarnings everywhere.
     * 
     * @param <B> Base type to cast at
     * @param <T> Derived type returned
     * @param base Base class to cast at
     * @param obj Object
     * @return Cast object or null.
     */
    @SuppressWarnings("unchecked")
    public static <B, T extends B> T castWithGenericsOrNull(Class<B> base,
            Object obj) {
        try {
            return (T) base.cast(obj);
        } catch (ClassCastException e) {
            return null;
        }
    }
}

Related

  1. castToPrimitive(Object value, String targetType)
  2. castTotal(boolean isDoubleQuote, String target)
  3. castToTypeOrNull(Object object, Class clazz)
  4. castUnderLine(String origin)
  5. castValue(String value, Class clazz)