集册 Java实例教程 获取参数化超类

获取参数化超类

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

476
获取参数化超类

/*

 * Licensed to the Indoqa Software Design und Beratung GmbH (Indoqa) under

 * one or more contributor license agreements. See the NOTICE file distributed

 * with this work for additional information regarding copyright ownership.

 * Indoqa licenses this file to You 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.ParameterizedType;/*时 代 J a v a 公 众 号 - nowjava.com*/

import java.lang.reflect.Type;


public class Main {

    private static ParameterizedType getParameterizedSuperclass(

            Class<?> type) {

        Class<?> currentClass = type;


        while (true) {

            Type genericSuperclass = currentClass.getGenericSuperclass();


            if (genericSuperclass instanceof ParameterizedType) {

                return (ParameterizedType) genericSuperclass;

            }


            if (genericSuperclass instanceof Class) {

                currentClass = (Class<?>) genericSuperclass;
展开阅读全文