集册 Java实例教程 调用静态方法

调用静态方法

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

410
调用静态方法

/*

 * Licensed to the Apache Software Foundation (ASF) under one or more

 * contributor license agreements. See the NOTICE file distributed with

 * this work for additional information regarding copyright ownership.

 * The ASF 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.

 *///N o w J a v a . c o m - 时代Java

import java.lang.reflect.Constructor;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.lang.reflect.ParameterizedType;

import java.lang.reflect.Type;


public class Main{

    public static <T> T invokeStaticMethod(Method method, Object... args) {

        T obj = null;

        try {

            obj = (T) method.invoke(null, args);

        } catch (InvocationTargetException ex) {

            Throwable c = ex.getCause();

            if (c instanceof RuntimeException)

                throw (RuntimeException) c;

            if (c instanceof Error)

                throw (Error) c;

            if (c != null)/**from 时 代 J     a    v  a - nowjava.com**/

                throw new BindingException("Method " + method.getName()

                        + " could not be invoked: " + c.getMessage(), c);

            throw new BindingException("Method " + method.getName()

                    + 
展开阅读全文