当前位置: 首页>>代码示例>>Java>>正文


Java Constructor类代码示例

本文整理汇总了Java中java.lang.reflect.Constructor的典型用法代码示例。如果您正苦于以下问题:Java Constructor类的具体用法?Java Constructor怎么用?Java Constructor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Constructor类属于java.lang.reflect包,在下文中一共展示了Constructor类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: findConstructor

import java.lang.reflect.Constructor; //导入依赖的package包/类
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;
}
 
开发者ID:venus-boot,项目名称:saluki,代码行数:23,代码来源:ReflectUtils.java

示例2: newFactory

import java.lang.reflect.Constructor; //导入依赖的package包/类
/**
 * 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;
}
 
开发者ID:parabuild-ci,项目名称:parabuild-ci,代码行数:44,代码来源:HsqlSocketFactory.java

示例3: compile

import java.lang.reflect.Constructor; //导入依赖的package包/类
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);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:18,代码来源:CompileCodeTestCase.java

示例4: JSONORM

import java.lang.reflect.Constructor; //导入依赖的package包/类
/**
 * 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);
    }
}
 
开发者ID:Arraying,项目名称:Kotys,代码行数:26,代码来源:JSONORM.java

示例5: get

import java.lang.reflect.Constructor; //导入依赖的package包/类
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;
}
 
开发者ID:breakEval13,项目名称:NSS,代码行数:18,代码来源:CryptFactory.java

示例6: getClientCnxnSocket

import java.lang.reflect.Constructor; //导入依赖的package包/类
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;
    }
}
 
开发者ID:didichuxing2,项目名称:https-github.com-apache-zookeeper,代码行数:18,代码来源:ZooKeeper.java

示例7: sortConstructors

import java.lang.reflect.Constructor; //导入依赖的package包/类
/**
 * 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;
		}
	});
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:23,代码来源:AutowireUtils.java

示例8: test7

import java.lang.reflect.Constructor; //导入依赖的package包/类
@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");
    }
}
 
开发者ID:gengwg,项目名称:java_mooc_fi,代码行数:26,代码来源:NightSkyTest.java

示例9: getObject

import java.lang.reflect.Constructor; //导入依赖的package包/类
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;
}
 
开发者ID:hucheat,项目名称:APacheSynapseSimplePOC,代码行数:21,代码来源:Spring1.java

示例10: onCreateViewHolder

import java.lang.reflect.Constructor; //导入依赖的package包/类
@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);
    }
}
 
开发者ID:MCMrARM,项目名称:revolution-irc,代码行数:20,代码来源:EntryRecyclerViewAdapter.java

示例11: newInstance

import java.lang.reflect.Constructor; //导入依赖的package包/类
/** 
 * 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;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:24,代码来源:AbstractFileSystem.java

示例12: newInstanceDataBase

import java.lang.reflect.Constructor; //导入依赖的package包/类
/**
 * 利用反射构建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;
	}
}
 
开发者ID:shaogaige,项目名称:iDataBaseConnection,代码行数:21,代码来源:GodTool.java

示例13: getAccessibleConstructor

import java.lang.reflect.Constructor; //导入依赖的package包/类
/**
 * 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;
}
 
开发者ID:yippeesoft,项目名称:NotifyTools,代码行数:29,代码来源:ConstructorUtils.java

示例14: create

import java.lang.reflect.Constructor; //导入依赖的package包/类
/**
 * 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;
}
 
开发者ID:marvinmalkowskijr,项目名称:applecommander,代码行数:30,代码来源:AppleImage.java

示例15: createNewDummy

import java.lang.reflect.Constructor; //导入依赖的package包/类
/**
 * 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);
    }
}
 
开发者ID:btc-ag,项目名称:redg,代码行数:30,代码来源:DefaultDummyFactory.java


注:本文中的java.lang.reflect.Constructor类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。