首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

#反射

如何利用反射拒绝反射?

根据文件,ReflectionPermission是授予你授予私有和受保护成员代码访问权限的方法。默认情况下,它不被授予,并且代码只能访问公共成员。如果你试图隐藏公共成员,则需要创建一个不公开它们的新接口。

是否有程序化的默认值?

什么不调用返回默认(T)与反射的方法?您可以使用任何类型的GetDefault: public object GetDefault(Type t) { return this.GetType().GetMethod("GetDefaultGeneric").MakeGenericMethod(t).Invoke(this, null); } public T GetDefaultGeneric<T>() { return default(T); }... 展开详请

能用反射找到一个包里的所有类吗?

你应该看看开源的反射库。有了它,你可以轻松实现你想要的。 首先,设置反射索引(这是有点麻烦,因为搜索所有类是默认禁用): List<ClassLoader> classLoadersList = new LinkedList<ClassLoader>(); classLoadersList.add(ClasspathHelper.contextClassLoader()); classLoadersList.add(ClasspathHelper.staticClassLoader()); Reflections reflections = new Reflections(new ConfigurationBuilder() .setScanners(new SubTypesScanner(false /* don't exclude Object.class */), new ResourcesScanner()) .setUrls(ClasspathHelper.forClassLoader(classLoadersList.toArray(new ClassLoader[0]))) .filterInputsBy(new FilterBuilder().include(FilterBuilder.prefix("org.your.package")))); 然后你可以查询给定包中的所有对象: Set<Class<?>> classes = reflections.getSubTypesOf(Object.class);... 展开详请
领券
http://www.vxiaotou.com