集册 Java实例教程 获取可访问的构造方法

获取可访问的构造方法

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

446
获取可访问的构造方法
/** 时   代     Java  公  众  号 - nowjava.com 提 供 **/

/*

 **        DroidPlugin Project

 **

 ** Copyright(c) 2015 Andy Zhang <zhangyong232@gmail.com>

 **

 ** This file is part of DroidPlugin.

 **

 ** DroidPlugin 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 3 of the License, or (at your option) any later version.

 **

 ** DroidPlugin 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 DroidPlugin.  If not, see <http://www.gnu.org/licenses/lgpl.txt>

 **

 **/

import java.lang.reflect.Constructor;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.lang.reflect.Modifier;

import java.util.HashMap;

import java.util.Map;


public class Main{

    private static <T> Constructor<T> getAccessibleConstructor(

            final Constructor<T> ctor) {

        Validate.isTrue(ctor != null, "constructor cannot be null");

        return isAccessible(ctor)

                && isAccessible(ctor.getDeclaringClass()) ? ctor : null;

    }

    private static boolean isAccessible(final Class<?> type) {

        
展开阅读全文