集册 Java实例教程 通过反射获取组件类型

通过反射获取组件类型

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

484
通过反射获取组件类型
/* 
 来自 
*时代Java*/

/**

 *   GRANITE DATA SERVICES

 *   Copyright (C) 2006-2015 GRANITE DATA SERVICES S.A.S.

 *

 *   This file is part of the Granite Data Services Platform.

 *

 *   Granite Data Services is free software; you can redistribute it and/or

 *   modify it under the terms of the GNU Lesser General Public

 *   License as published by the Free Software Foundation; either

 *   version 2.1 of the License, or (at your option) any later version.

 *

 *   Granite Data Services 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 Lesser

 *   General Public License for more details.

 *

 *   You should have received a copy of the GNU Lesser General Public

 *   License along with this library; if not, write to the Free Software

 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,

 *   USA, or see <http://www.gnu.org/licenses/>.

 */

import java.lang.reflect.ParameterizedType;

import java.lang.reflect.Type;

import java.util.Collection;


public class Main {

  public static Type getComponentType(Type collectionType) {


    Class<?> collectionClass = collectionType.getClass();

    if (collectionClass == null || !Collection.class.isAssignableFrom(collectionClass))

      return null;


    if (collectionType instanceof ParameterizedType) {

      Type[] componentTypes = ((ParameterizedType) collectio
展开阅读全文