Java 类java.lang.reflect.Constructor 实例源码

项目:parabuild-ci    文件:HsqlSocketFactory.java   
/**
 * Retrieves a new HsqlSocketFactory whose class
 * is determined by the implClass argument. The basic contract here
 * is that implementations constructed by this method should return
 * true upon calling isSecure() iff they actually create secure sockets.
 * There is no way to guarantee this directly here, so it is simply
 * trusted that an  implementation is secure if it returns true
 * for calls to isSecure();
 *
 * @return a new secure socket factory
 * @param implClass the fully qaulified name of the desired
 *      class to construct
 * @throws Exception if a new secure socket factory cannot
 *      be constructed
 */
private static HsqlSocketFactory newFactory(String implClass)
throws Exception {

    Class       clazz;
    Constructor ctor;
    Class[]     ctorParm;
    Object[]    ctorArg;
    Object      factory;

    clazz    = Class.forName(implClass);
    ctorParm = new Class[0];

    // protected constructor
    ctor    = clazz.getDeclaredConstructor(ctorParm);
    ctorArg = new Object[0];

    try {
        factory = ctor.newInstance(ctorArg);
    } catch (InvocationTargetException e) {
        Throwable t = e.getTargetException();

        throw (t instanceof Exception) ? ((Exception) t)
                                       : new RuntimeException(
                                           t.toString());
    }

    return (HsqlSocketFactory) factory;
}
项目:openjdk-jdk10    文件:CompileCodeTestCase.java   
public NMethod compile(int level) {
    String directive = "[{ match: \"" + executable.getDeclaringClass().getName().replace('.', '/')
            + "." + (executable instanceof Constructor ? "<init>" : executable.getName())
            + "\", " + "BackgroundCompilation: false }]";
    if (WB.addCompilerDirective(directive) != 1) {
        throw new Error("Failed to add compiler directive: " + directive);
    }
    boolean enqueued = WB.enqueueMethodForCompilation(executable,
            level, bci);
    if (!enqueued) {
        throw new Error(String.format(
                "%s can't be enqueued for %scompilation on level %d",
                executable, bci >= 0 ? "osr-" : "", level));
    }
    Utils.waitForCondition(() -> WB.isMethodCompiled(executable, isOsr));
    return NMethod.get(executable, isOsr);
}
项目:Kotys    文件:JSONORM.java   
/**
 * Creates a new JSON ORM by using the class.
 * @param clazz The class of the container that will be worked with.
 * @throws IllegalArgumentException If the provided class has no empty constructor.
 * @throws IllegalStateException If the provided class could not be instantiated.
 */
JSONORM(Class<T> clazz)
        throws IllegalArgumentException {
    Constructor<?> constructor = null;
    for(Constructor<?> tConstructor : clazz.getDeclaredConstructors()) {
        if(tConstructor.getParameterCount() == 0) {
            constructor = tConstructor;
        }
    }
    if(constructor == null) {
        throw new IllegalArgumentException("Provided class " + clazz + " has no empty constructor");
    }
    constructor.setAccessible(true);
    try {
        //noinspection unchecked
        container = (T) constructor.newInstance();
    } catch(InvocationTargetException | InstantiationException | IllegalAccessException exception) {
        throw new IllegalStateException("An internal error occurred, could not instantiate " + clazz);
    }
}
项目:NSS    文件:CryptFactory.java   
public static ICrypt get(String name, String password) {
    String className = crypts.get(name);
    if (className == null) {
        return null;
    }

    try {
        Class<?> clazz = Class.forName(className);
        Constructor<?> constructor = clazz.getConstructor(String.class,
                String.class);
        return (ICrypt) constructor.newInstance(name, password);
    } catch (Exception e) {
        logger.error("get crypt error", e);
    }

    return null;
}
项目:https-github.com-apache-zookeeper    文件:ZooKeeper.java   
private ClientCnxnSocket getClientCnxnSocket() throws IOException {
    String clientCnxnSocketName = getClientConfig().getProperty(
            ZKClientConfig.ZOOKEEPER_CLIENT_CNXN_SOCKET);
    if (clientCnxnSocketName == null) {
        clientCnxnSocketName = ClientCnxnSocketNIO.class.getName();
    }
    try {
        Constructor<?> clientCxnConstructor = Class.forName(clientCnxnSocketName).getDeclaredConstructor(ZKClientConfig.class);
        ClientCnxnSocket clientCxnSocket = (ClientCnxnSocket) clientCxnConstructor.newInstance(getClientConfig());
        return clientCxnSocket;
    } catch (Exception e) {
        IOException ioe = new IOException("Couldn't instantiate "
                + clientCnxnSocketName);
        ioe.initCause(e);
        throw ioe;
    }
}
项目:lams    文件:AutowireUtils.java   
/**
 * Sort the given constructors, preferring public constructors and "greedy" ones with
 * a maximum number of arguments. The result will contain public constructors first,
 * with decreasing number of arguments, then non-public constructors, again with
 * decreasing number of arguments.
 * @param constructors the constructor array to sort
 */
public static void sortConstructors(Constructor<?>[] constructors) {
    Arrays.sort(constructors, new Comparator<Constructor<?>>() {
        @Override
        public int compare(Constructor<?> c1, Constructor<?> c2) {
            boolean p1 = Modifier.isPublic(c1.getModifiers());
            boolean p2 = Modifier.isPublic(c2.getModifiers());
            if (p1 != p2) {
                return (p1 ? -1 : 1);
            }
            int c1pl = c1.getParameterTypes().length;
            int c2pl = c2.getParameterTypes().length;
            return (new Integer(c1pl)).compareTo(c2pl) * -1;
        }
    });
}
项目:java_mooc_fi    文件:NightSkyTest.java   
@Test
@Points("100.1")
public void test7() {
    Constructor densityKonstruktori = ReflectionUtils.requireConstructor(clazz, double.class);
    Object inst = null;
    try {
        inst = ReflectionUtils.invokeConstructor(densityKonstruktori, 1.0);
    } catch (Throwable ex) {
        fail("Ensure that class " + tahtitaivasLuokka + " has constructor public " + tahtitaivasLuokka + "(double density).");
    }

    int tahdet = 0;
    Method m = ReflectionUtils.requireMethod(clazz, printLineMetodi);

    try {
        ReflectionUtils.invokeMethod(void.class, m, inst);
        String out = stdio.getSysOut();
        if (out == null || out.isEmpty()) {
            fail("Ensure that the method " + printLineMetodi + " prints something.");
        }
    } catch (Throwable t) {
        fail("Ensure that class " + tahtitaivasLuokka + " has method public void " + printLineMetodi + "() "
                + "\nCall to the method should print something");
    }
}
项目:APacheSynapseSimplePOC    文件:Spring1.java   
public Object getObject(final String command) throws Exception {
    final Object templates = Gadgets.createTemplatesImpl(command);

    final ObjectFactory objectFactoryProxy =
            Gadgets.createMemoitizedProxy(Gadgets.createMap("getObject", templates), ObjectFactory.class);

    final Type typeTemplatesProxy = Gadgets.createProxy((InvocationHandler)
            Reflections.getFirstCtor("org.springframework.beans.factory.support.AutowireUtils$ObjectFactoryDelegatingInvocationHandler")
                .newInstance(objectFactoryProxy), Type.class, Templates.class);

    final Object typeProviderProxy = Gadgets.createMemoitizedProxy(
            Gadgets.createMap("getType", typeTemplatesProxy),
            forName("org.springframework.core.SerializableTypeWrapper$TypeProvider"));

    final Constructor mitpCtor = Reflections.getFirstCtor("org.springframework.core.SerializableTypeWrapper$MethodInvokeTypeProvider");
    final Object mitp = mitpCtor.newInstance(typeProviderProxy, Object.class.getMethod("getClass", new Class[] {}), 0);
    Reflections.setFieldValue(mitp, "methodName", "newTransformer");

    return mitp;
}
项目:revolution-irc    文件:EntryRecyclerViewAdapter.java   
@Override
public EntryHolder onCreateViewHolder(ViewGroup viewGroup, int type) {
    View view = LayoutInflater.from(viewGroup.getContext())
            .inflate(sKnownViewHolderLayouts.get(type), viewGroup, false);
    try {
        try {
            return sKnownViewHolders.get(type).getDeclaredConstructor(View.class).newInstance(view);
        } catch (NoSuchMethodException e2) {
            for (Constructor constructor : sKnownViewHolders.get(type).getDeclaredConstructors()) {
                Class[] p = constructor.getParameterTypes();
                if (p.length == 2 && p[0].equals(View.class) && EntryRecyclerViewAdapter.class.isAssignableFrom(p[1]))
                    return (EntryHolder) constructor.newInstance(view, this);
            }
            throw new NoSuchMethodException();
        }
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
项目:hadoop    文件:AbstractFileSystem.java   
/** 
 * Create an object for the given class and initialize it from conf.
 * @param theClass class of which an object is created
 * @param conf Configuration
 * @return a new object
 */
@SuppressWarnings("unchecked")
static <T> T newInstance(Class<T> theClass,
  URI uri, Configuration conf) {
  T result;
  try {
    Constructor<T> meth = (Constructor<T>) CONSTRUCTOR_CACHE.get(theClass);
    if (meth == null) {
      meth = theClass.getDeclaredConstructor(URI_CONFIG_ARGS);
      meth.setAccessible(true);
      CONSTRUCTOR_CACHE.put(theClass, meth);
    }
    result = meth.newInstance(uri, conf);
  } catch (Exception e) {
    throw new RuntimeException(e);
  }
  return result;
}
项目:iDataBaseConnection    文件:GodTool.java   
/**
 * 利用反射构建DataBase对象
 * @param connInfo
 * @return DataBase
 */
public static <T extends Enum<T> & IDataSource> DataBase newInstanceDataBase(ConnectionInfo connInfo)
{
    try 
    {
        Constructor<?> dataBaseConstr = connInfo.getIDataSource().getDataBase().getDeclaredConstructor(ConnectionInfo.class);
        DataBase dataBase= (DataBase) dataBaseConstr.newInstance(connInfo);
        return dataBase;

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        DBCException.logException(DBCException.E_newInstanceDataBase, e);
        return null;
    }
}
项目:NotifyTools    文件:ConstructorUtils.java   
/**
 * Returns accessible version of the given constructor.
 * @param <T> the type of the constructor
 * @param ctor prototype constructor object.
 * @return <code>null</code> if accessible constructor can not be found.
 * @see java.lang.SecurityManager
 */
public static <T> Constructor<T> getAccessibleConstructor(final Constructor<T> ctor) {

    // Make sure we have a method to check
    if (ctor == null) {
        return (null);
    }

    // If the requested method is not public we cannot call it
    if (!Modifier.isPublic(ctor.getModifiers())) {
        return (null);
    }

    // If the declaring class is public, we are done
    final Class<T> clazz = ctor.getDeclaringClass();
    if (Modifier.isPublic(clazz.getModifiers())) {
        return (ctor);
    }

    // what else can we do?
    return null;
}
项目:applecommander    文件:AppleImage.java   
/**
 * Create a specific instance of AppleImage.  This has been coded
 * using Reflection to ease native compilation for the most part.
 */
public static AppleImage create(int width, int height) {
    String[] classes = {
        "ImageIoImage", "SunJpegImage", "SwtImage" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    Class[] constructorArgClasses = new Class[] {
        int.class, int.class };
    Object[] constructorArgs = new Object[] {
        new Integer(width), new Integer(height) };
    for (int i=0; i<classes.length; i++) {
        try {
            Class appleImageClass = Class.forName(
                "com.webcodepro.applecommander.storage.filters.imagehandlers."  //$NON-NLS-1$
                + classes[i]);
            Constructor constructor = 
                appleImageClass.getConstructor(constructorArgClasses);
            AppleImage appleImage = (AppleImage) 
                constructor.newInstance(constructorArgs);
            return appleImage;
        } catch (Exception ignored) {
            // There are multiple exceptions that can be thrown here.
            // For the most part, this is expected and simply means that
            // the image handler is not available on the platform.
        }
    }
    return null;
}
项目:redg    文件:DefaultDummyFactory.java   
/**
 * Creates a new dummy entity of the required type. Required non null foreign keys will be taken from the {@link #getDummy(AbstractRedG, Class)} method
 * and will be created if necessary as well. If the creation fails for some reason, a {@link DummyCreationException} will be thrown.
 *
 * @param redG       The redG instance
 * @param dummyClass The class specifying the wanted entity type
 * @param <T>        The wanted entity type
 * @return A new dummy entity of the required type. It has already been added to the redG object and can be used immediately.
 * @throws DummyCreationException If no fitting constructor is found or instantiation fails
 */
private <T extends RedGEntity> T createNewDummy(AbstractRedG redG, Class<T> dummyClass) {
    Constructor constructor = Arrays.stream(dummyClass.getDeclaredConstructors())
            .filter(this::isDummyRedGEntityConstructor)
            .findFirst().orElseThrow(() -> new DummyCreationException("Could not find a fitting constructor"));
    Object[] parameter = new Object[constructor.getParameterCount()];
    parameter[0] = redG;
    for (int i = 1; i < constructor.getParameterCount(); i++) {
        parameter[i] = getDummy(redG, constructor.getParameterTypes()[i]);
    }

    try {
        constructor.setAccessible(true);
        T obj = dummyClass.cast(constructor.newInstance(parameter));
        redG.addEntity(obj);
        return obj;
    } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {
        throw new DummyCreationException("Instantiation of the dummy failed", e);
    }
}
项目:spring-boot-seed    文件:ObjectMapperUtil.java   
/**
 * * 通用实体转换方法,将JPA返回的数组转化成对应的实体集合,这里通过泛型和反射实现
 * * @param <T>
 * * @param list
 * * @param clazz 需要转化后的类型
 * * @return
 * * @throws Exception
 */
public static <T> List<T> castEntity(List<Object[]> list, Class<T> clazz) {
    List<T> returnList = new ArrayList<T>();
    if(list != null && !list.isEmpty()) {
        Object[] co = list.get(0);
        Class[] c2 = new Class[co.length];
        try {
            //确定构造方法
            for (int i = 0; i < co.length; i++) {
                c2[i] = co[i].getClass();
            }
            for (Object[] o : list) {
                Constructor<T> constructor = clazz.getConstructor(c2);
                returnList.add(constructor.newInstance(o));
            }
        } catch (Exception e) {
            logger.error("mapper error", e);
        }
    }
    return returnList;
}
项目:Autotip    文件:ReflectionUtil.java   
public static Constructor<?> getConstructor(Class<?> clazz, Class<?>... params) {
    if (!loadedConstructors.containsKey(clazz)) {
        loadedConstructors.put(clazz, new HashMap<>());
    }

    Map<Class<?>[], Constructor<?>> clazzConstructors = loadedConstructors.get(clazz);

    if (clazzConstructors.containsKey(params)) {
        clazzConstructors.get(params);
    }

    Constructor<?> constructor = null;
    try {
        constructor = clazz.getConstructor(params);
        constructor.setAccessible(true);
    } catch (NoSuchMethodException e) {
        e.printStackTrace();
    }

    clazzConstructors.put(params, constructor);
    loadedConstructors.put(clazz, clazzConstructors);
    return constructor;
}
项目:DBus    文件:DbusHeartBeatBolt.java   
private BoltCommandHandlerProvider buildProvider() throws Exception {
    /*Set<Class<?>> classes = AnnotationScanner.scan("com.creditease.dbus", BoltCmdHandlerProvider.class, (clazz, annotation) -> {
        BoltCmdHandlerProvider ca = clazz.getAnnotation(BoltCmdHandlerProvider.class);
        return ca.type() == BoltType.HEARTBEAT_BOLT;
    });
    if (classes.size() <= 0) throw new ProviderNotFoundException();
    if (classes.size() > 1) {
        String providers = "";
        for (Class<?> clazz : classes) {
            providers += clazz.getName() + " ";
        }
        throw new RuntimeException("too many providers found: " + providers);
    }*/
    DbusDatasourceType type = GlobalCache.getDatasourceType();
    String name;
    if(type == DbusDatasourceType.ORACLE) {
        name = "com.creditease.dbus.stream.oracle.appender.bolt.processor.provider.HeartbeatCmdHandlerProvider";
    } else if(type == DbusDatasourceType.MYSQL) {
        name = "com.creditease.dbus.stream.mysql.appender.bolt.processor.provider.HeartbeatCmdHandlerProvider";
    } else {
        throw new IllegalArgumentException("Illegal argument [" + type.toString() + "] for building BoltCommandHandler map!");
    }
    Class<?> clazz = Class.forName(name);
    Constructor<?> constructor = clazz.getConstructor(HeartbeatHandlerListener.class);
    return (BoltCommandHandlerProvider) constructor.newInstance(this);
}
项目:saluki    文件:ReflectUtils.java   
public static Constructor<?> findConstructor(Class<?> clazz, Class<?> paramType)
    throws NoSuchMethodException {
  Constructor<?> targetConstructor;
  try {
    targetConstructor = clazz.getConstructor(new Class<?>[] {paramType});
  } catch (NoSuchMethodException e) {
    targetConstructor = null;
    Constructor<?>[] constructors = clazz.getConstructors();
    for (Constructor<?> constructor : constructors) {
      if (Modifier.isPublic(constructor.getModifiers())
          && constructor.getParameterTypes().length == 1
          && constructor.getParameterTypes()[0].isAssignableFrom(paramType)) {
        targetConstructor = constructor;
        break;
      }
    }
    if (targetConstructor == null) {
      throw e;
    }
  }
  return targetConstructor;
}
项目:incubator-netbeans    文件:BytecodeTest.java   
/** Check that we are not loading classes hungrily. 
 * DataLoader(String) is prefered to avoid loading of DataObject classes.
 */
public void testDataLoaders() throws Exception {
    Enumeration<DataLoader> loaders = DataLoaderPool.getDefault().allLoaders();
    while (loaders.hasMoreElements()) {
        DataLoader ldr = loaders.nextElement();
        if ("org.netbeans.modules.cnd.loaders.CCDataLoader".equals(ldr.getClass().getName())) { // #97612
            continue;
        }

        try { 
            // XXX not enough better is to test that all ctors only call super(String)
            Constructor ctor = ldr.getClass().getDeclaredConstructor(Class.class);
            assertNull(ldr.getClass().getName()+".<init>(String) is better are usualy enough", ctor);
        } catch (NoSuchMethodException ex) {
            // expected path - OK
        }
    }
}
项目:apigateway-sdk-core    文件:HttpClientFactory.java   
public static HttpClient buildClient(BuilderParams builderParams) {
    try {
        String httpClientClassName = System.getProperty(HTTP_CLIENT_IMPL_KEY);
        if (StringUtils.isEmpty(httpClientClassName)) {
            httpClientClassName = DEFAULT_HTTP_CLIENT;
        }
        Class httpClientClass = Class.forName(httpClientClassName);
        if (!HttpClient.class.isAssignableFrom(httpClientClass)) {
            throw new IllegalStateException(String.format("%s is not assignable from com.alibaba.cloudapi.sdk.core.HttpClient", httpClientClassName));
        }
        Constructor<? extends HttpClient> constructor = httpClientClass.getConstructor(BuilderParams.class);
        return constructor.newInstance(builderParams);
    } catch (Exception e) {
        throw new SdkClientException("HttpClientFactory buildClient failed", e);
    }
}
项目:rmq4note    文件:MessageStoreFactory.java   
public final static MessageStore build(MessageStorePluginContext context, MessageStore messageStore)
    throws IOException {
    String plugin = context.getBrokerConfig().getMessageStorePlugIn();
    if (plugin != null && plugin.trim().length() != 0) {
        String[] pluginClasses = plugin.split(",");
        for (int i = pluginClasses.length - 1; i >= 0; --i) {
            String pluginClass = pluginClasses[i];
            try {
                @SuppressWarnings("unchecked")
                Class<AbstractPluginMessageStore> clazz = (Class<AbstractPluginMessageStore>) Class.forName(pluginClass);
                Constructor<AbstractPluginMessageStore> construct = clazz.getConstructor(MessageStorePluginContext.class, MessageStore.class);
                messageStore = construct.newInstance(context, messageStore);
            } catch (Throwable e) {
                throw new RuntimeException(String.format(
                    "Initialize plugin's class %s not found!", pluginClass), e);
            }
        }
    }
    return messageStore;
}
项目:openjdk-jdk10    文件:SignatureType.java   
public SignatureType(Executable method) {
    super(MethodDescriptor.Separator.NONE);
    // Get parameters
    Class<?>[] types = method.getParameterTypes();
    String[] parameterTypes = new String[types.length];
    for (int i = 0; i < types.length; i++) {
        parameterTypes[i] = Utils.toJVMTypeSignature(types[i]);
    }
    // Get return value
    String returnType;
    if (method instanceof Method) {
        returnType = Utils.toJVMTypeSignature(((Method) method)
                .getReturnType());
    } else if (method instanceof Constructor) {
        // Constructor returns void in VM
        returnType = Utils.toJVMTypeSignature(void.class);
    } else {
        throw new Error(String.format("TESTBUG: wrong type of executable "
                + "%s of class %s", method, method.getClass()));
    }
    // Create signature
    setElement("(" + String.join("", parameterTypes)+ ")" + returnType);
    regexp = element;
    setPattern(MethodDescriptor.PatternType.EXACT);
    separator = MethodDescriptor.Separator.NONE;
}
项目:jdk8u-jdk    文件:NonPublicProxyClass.java   
private void newInstanceFromConstructor(Class<?> proxyClass)
    throws Exception
{
    // expect newInstance to succeed if it's in the same runtime package
    boolean isSamePackage = proxyClass.getName().lastIndexOf('.') == -1;
    try {
        Constructor cons = proxyClass.getConstructor(InvocationHandler.class);
        cons.newInstance(newInvocationHandler());
        if (!isSamePackage) {
            throw new RuntimeException("ERROR: Constructor.newInstance should not succeed");
        }
    }  catch (IllegalAccessException e) {
        if (isSamePackage) {
            throw e;
        }
    }
}
项目:openjdk-jdk10    文件:TestOSRWithNonEmptyStack.java   
private void run() {
    byte[] bytecode = TestOSRWithNonEmptyStack.generateTestClass();

    try {
        Class klass = defineClass(TestOSRWithNonEmptyStack.CLASS_NAME,
                bytecode, 0, bytecode.length);

        Constructor ctor = klass.getConstructor();
        Method method = klass.getDeclaredMethod(
                TestOSRWithNonEmptyStack.METHOD_NAME);

        Object testCase = ctor.newInstance();
        method.invoke(testCase);
    } catch (Exception e) {
        throw new RuntimeException(
                "Test bug: generated class should be valid.", e);
    }
}
项目:GitHub    文件:TinkerResourcePatcher.java   
/**
     * Why must I do these?
     * Resource has mTypedArrayPool field, which just like Message Poll to reduce gc
     * MiuiResource change TypedArray to MiuiTypedArray, but it get string block from offset instead of assetManager
     */
    private static void clearPreloadTypedArrayIssue(Resources resources) {
        // Perform this trick not only in Miui system since we can't predict if any other
        // manufacturer would do the same modification to Android.
//        if (!isMiuiSystem) {
//            return;
//        }
        Log.w(TAG, "try to clear typedArray cache!");
        // Clear typedArray cache.
        try {
            Field typedArrayPoolField = ShareReflectUtil.findField(Resources.class, "mTypedArrayPool");

            final Object origTypedArrayPool = typedArrayPoolField.get(resources);

            Field poolField = ShareReflectUtil.findField(origTypedArrayPool, "mPool");

            final Constructor<?> typedArrayConstructor = origTypedArrayPool.getClass().getConstructor(int.class);
            typedArrayConstructor.setAccessible(true);
            final int poolSize = ((Object[]) poolField.get(origTypedArrayPool)).length;
            final Object newTypedArrayPool = typedArrayConstructor.newInstance(poolSize);
            typedArrayPoolField.set(resources, newTypedArrayPool);
        } catch (Throwable ignored) {
            Log.e(TAG, "clearPreloadTypedArrayIssue failed, ignore error: " + ignored);
        }
    }
项目:TPlayer    文件:MethodInvocationProxy.java   
private void addMethodProxy(Class<?> hookType) {
    try {
        Constructor<?> constructor = hookType.getDeclaredConstructors()[0];
        if (!constructor.isAccessible()) {
            constructor.setAccessible(true);
        }
        MethodProxy methodProxy;
        if (constructor.getParameterTypes().length == 0) {
            methodProxy = (MethodProxy) constructor.newInstance();
        } else {
            methodProxy = (MethodProxy) constructor.newInstance(this);
        }
        mInvocationStub.addMethodProxy(methodProxy);
    } catch (Throwable e) {
        throw new RuntimeException("Unable to instance Hook : " + hookType + " : " + e.getMessage());
    }
}
项目:nighthawk    文件:TomcatDataSourceTracingInterceptor.java   
@Override
public Object createStatement(Object proxy, Method method, Object[] args, Object statement, long time) {
    try {
        Object result;
        String name = method.getName();
        String sql = null;
        Constructor<?> constructor;
        if (compare(CREATE_STATEMENT, name)) {
            constructor = getConstructor(CREATE_STATEMENT_IDX, Statement.class);
        } else if (compare(PREPARE_STATEMENT, name)) {
            sql = (String) args[0];
            constructor = getConstructor(PREPARE_STATEMENT_IDX, PreparedStatement.class);
        } else if (compare(PREPARE_CALL, name)) {
            sql = (String) args[0];
            constructor = getConstructor(PREPARE_CALL_IDX, CallableStatement.class);
        } else {
            return statement;
        }
        result = constructor.newInstance(new StatementProxy(statement, sql));
        return result;
    } catch (Exception x) {
        logger.warn("Unable to create statement proxy for tracing.", x);
    }
    return statement;
}
项目:UIAutomatorWD    文件:MUiDevice.java   
private UiObject2 doFindObject(Object selector, AccessibilityNodeInfo node) throws Exception {

        Class uiObject2 = Class.forName("android.support.test.uiautomator.UiObject2");
        Constructor cons = uiObject2.getDeclaredConstructors()[0];
        cons.setAccessible(true);
        Object[] constructorParams = {uiDevice, selector, node};

        final long timeoutMillis = 1000;
        long end = SystemClock.uptimeMillis() + timeoutMillis;
        while (true) {
            UiObject2 object2 = (UiObject2) cons.newInstance(constructorParams);
            if (object2 != null) {
                return object2;
            }
            long remainingMillis = end - SystemClock.uptimeMillis();
            if (remainingMillis < 0) {
                return null;
            }
            SystemClock.sleep(Math.min(200, remainingMillis));
        }
    }
项目:ditb    文件:YammerHistogramUtils.java   
/**
 * Create a new {@link com.yammer.metrics.core.Histogram} instance. These constructors are
 * not public in 2.2.0, so we use reflection to find them.
 */
public static Histogram newHistogram(Sample sample) {
  try {
    Constructor<?> ctor =
        Histogram.class.getDeclaredConstructor(Sample.class);
    ctor.setAccessible(true);
    return (Histogram) ctor.newInstance(sample);
  } catch (Exception e) {
    throw new RuntimeException(e);
  }
}
项目:customstuff4    文件:ShapedRecipe.java   
void addRecipe()
{
    Class<DamageableShapedOreRecipe> recipeClass = JEICompatRegistry.getShapedCraftingRecipeClass(recipeList);
    Constructor<DamageableShapedOreRecipe> constructor = ReflectionHelper.getConstructor(recipeClass, ResourceLocation.class, int[].class, ItemStack.class, Object[].class);
    int[] damageAmounts = createDamageAmounts(getRecipeWidth(), getRecipeHeight(), shape, damage);
    DamageableShapedOreRecipe recipe = ReflectionHelper.newInstance(constructor, null, damageAmounts, result.getItemStack(), getInputForRecipe());

    if (recipe != null)
    {
        recipe.setMirrored(mirrored);
        CraftingManagerCS4.addRecipe(recipeList, recipe);
    }
}
项目:com-liferay-apio-architect    文件:MockSingleModelWriterTest.java   
@Test(expected = UnsupportedOperationException.class)
public void testConstructorThrowsException() throws Throwable {
    Constructor<?> constructor =
        MockSingleModelWriter.class.getDeclaredConstructors()[0];

    constructor.setAccessible(true);

    try {
        constructor.newInstance();
    }
    catch (InvocationTargetException ite) {
        throw ite.getTargetException();
    }
}
项目:ArchUnit    文件:Assertions.java   
private static <T extends Member & AnnotatedElement> String getExpectedNameOf(T member, String name) {
    String base = member.getDeclaringClass().getName() + "." + name;
    if (member instanceof Method) {
        return base + expectedParametersOf(((Method) member).getParameterTypes());
    }
    if (member instanceof Constructor<?>) {
        return base + expectedParametersOf(((Constructor<?>) member).getParameterTypes());
    }
    return base;
}
项目:framework    文件:ThriftUtil.java   
public static TProcessor buildProcessor(Class<?> svcInterface, Object service) throws Exception {
    Class<TProcessor> processorClass = (Class<TProcessor>) getThriftServiceInnerClassOrNull(svcInterface.getEnclosingClass(), PROCESSOR_NAME, false);
    if (processorClass == null) {
        throw new ThriftRuntimeException("the processor is null");
    }

    Constructor<TProcessor> constructor = ClassUtils.getConstructorIfAvailable(processorClass, svcInterface);
    if (constructor == null) {
        throw new ThriftRuntimeException("the processor constructor is null");
    }

    return constructor.newInstance(service);
}
项目:jdk8u-jdk    文件:Equals.java   
/**
 * Returns an InterfaceAddress instance with its fields set the the values
 * specificed.
 */
static InterfaceAddress createInterfaceAddress(
            InetAddress address, InetAddress broadcast, short prefixlength) {
    try {
        Class<InterfaceAddress> IAClass = InterfaceAddress.class;
        InterfaceAddress ia;
        Constructor<InterfaceAddress> ctr = IAClass.getDeclaredConstructor();
        ctr.setAccessible(true);

        Field addressField = IAClass.getDeclaredField("address");
        addressField.setAccessible(true);

        Field broadcastField = IAClass.getDeclaredField("broadcast");
        broadcastField.setAccessible(true);

        Field maskLengthField = IAClass.getDeclaredField("maskLength");
        maskLengthField.setAccessible(true);

        ia = ctr.newInstance();
        addressField.set(ia, address);
        broadcastField.set(ia, broadcast);
        maskLengthField.setShort(ia, prefixlength);

        return ia;
    } catch (NoSuchFieldException nsfe) {
        nsfe.printStackTrace();
    } catch (NoSuchMethodException e) {
        e.printStackTrace();
    } catch (InstantiationException ie) {
        ie.printStackTrace();
    } catch (IllegalAccessException iae) {
        iae.printStackTrace();
    } catch (InvocationTargetException ite) {
        ite.printStackTrace();
    }

    return null;
}
项目:NoraUi    文件:GherkinFactoryUT.java   
@Test
public void testConstructorIsPrivate() throws Exception {
    Constructor<GherkinFactory> constructor = GherkinFactory.class.getDeclaredConstructor();
    Assert.assertTrue(Modifier.isPrivate(constructor.getModifiers()));
    constructor.setAccessible(true);
    constructor.newInstance();
}
项目:hadoop    文件:UserDefinedValueAggregatorDescriptor.java   
/**
 * Create an instance of the given class
 * @param className the name of the class
 * @return a dynamically created instance of the given class 
 */
public static Object createInstance(String className) {
  Object retv = null;
  try {
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    Class<?> theFilterClass = Class.forName(className, true, classLoader);
    Constructor<?> meth = theFilterClass.getDeclaredConstructor(argArray);
    meth.setAccessible(true);
    retv = meth.newInstance();
  } catch (Exception e) {
    throw new RuntimeException(e);
  }
  return retv;
}
项目:jdk8u-jdk    文件:DataTransferer.java   
private static Constructor<?> getConstructor(Class<?> c, Class<?>... types) {
    try {
        return (c == null) ? null : c.getDeclaredConstructor(types);
    } catch (NoSuchMethodException x) {
        throw new AssertionError(x);
    }
}
项目:crnk-framework    文件:ClassTestUtils.java   
/**
 * for example CDI in need for such constructors to create proxy objects.
 */
public static void assertProtectedConstructor(Class<?> clazz) {
    try {
        Constructor constructor = clazz.getDeclaredConstructor();
        Assert.assertTrue(Modifier.isProtected(constructor.getModifiers()));
        constructor.setAccessible(true);
        Assert.assertNotNull(constructor.newInstance());
    }
    catch (Exception e) {
        throw new IllegalStateException(e);
    }
}
项目:RNLearn_Project1    文件:DevSupportManagerFactory.java   
public static DevSupportManager create(
  Context applicationContext,
  ReactInstanceDevCommandsHandler reactInstanceCommandsHandler,
  @Nullable String packagerPathForJSBundleName,
  boolean enableOnCreate,
  @Nullable RedBoxHandler redBoxHandler) {
  if (!enableOnCreate) {
    return new DisabledDevSupportManager();
  }
  try {
    // ProGuard is surprisingly smart in this case and will keep a class if it detects a call to
    // Class.forName() with a static string. So instead we generate a quasi-dynamic string to
    // confuse it.
    String className =
      new StringBuilder(DEVSUPPORT_IMPL_PACKAGE)
        .append(".")
        .append(DEVSUPPORT_IMPL_CLASS)
        .toString();
    Class<?> devSupportManagerClass =
      Class.forName(className);
    Constructor constructor =
      devSupportManagerClass.getConstructor(
        Context.class,
        ReactInstanceDevCommandsHandler.class,
        String.class,
        boolean.class,
        RedBoxHandler.class);
    return (DevSupportManager) constructor.newInstance(
      applicationContext,
      reactInstanceCommandsHandler,
      packagerPathForJSBundleName,
      true,
      redBoxHandler);
  } catch (Exception e) {
    throw new RuntimeException(
      "Requested enabled DevSupportManager, but DevSupportManagerImpl class was not found" +
        " or could not be created",
      e);
  }
}
项目:incubator-netbeans    文件:AsmTest.java   
public void testPatchSuperclassWithArray() throws Exception {
    Class<?> c = new L().loadClass(CAPI2.class.getName());
    assertNotSame(c, CAPI2.class);
    Class s = c.getSuperclass();
    assertEquals(CompatAPI2.class.getName(), s.getName());
    Constructor<?> init = c.getConstructor(String[].class);
    init.newInstance((Object)new String[] {"a","b"});
}