集册 Java实例教程 获取原始类型

获取原始类型

欢马劈雪     最近更新时间:2020-01-02 10:19:05

341
获取原始类型
/** 来 自 N o w J a v a . c o m**/

/*

 * Copyright 2007-2011 Hidekatsu Izuno

 *

 * 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

 *

 *     http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 

 * either express or implied. See the License for the specific language

 * governing permissions and limitations under the License.

 */

//package com.nowjava;


import java.lang.reflect.Array;


import java.lang.reflect.GenericArrayType;


import java.lang.reflect.ParameterizedType;

import java.lang.reflect.Type;

import java.lang.reflect.WildcardType;


public class Main {

    public static Class<?> getRawType(Type t) {

        if (t instanceof Class<?>) {

            return (Class<?>) t;/** 来 自 NowJava.com - 时代Java**/

        } else if (t instanceof ParameterizedType) {

            return (Class<?>) ((ParameterizedType) t).getRawType();

        } else if (t instanceof GenericArrayType) {

            Class<?> cls = null;

            try {

                cls = Array

                        .newInstance(

                                getRawType(((GenericArrayType) t)

                                        .getGenericComponentType()),

                                0).getClass();

            } catch (Exception e) {

                throw new RuntimeException(e);

            }

            return cls;

        } else 
展开阅读全文