Tag: reflection

我需要这个错误的帮助:java.lang.NoSuchMethodError

我有这个Java代码(JPA): String queryString = “SELECT b , sum(v.votedPoints) as votedPoint ” + ” FROM Bookmarks b ” + ” LEFT OUTER JOIN Votes v ” + ” on (v.organizationId = b.organizationId) ” + “WHERE b.userId = 101 ” + “GROUP BY b.organizationId ” + “ORDER BY votedPoint ascending “; EntityManager em = getEntityManager(); Query query […]

在Java中可以“反思地”访问方法的源代码吗?

我担心答案是否定的,但也许你们其中一人对我感到惊讶。 谢谢。 编辑1:我知道这个问题没有多大意义,但我认为这一点已得到理解,遗憾的是答案是否定的。 无论如何,我改变了问题的标题,在“反思性”一词中添加引号,我将尽力更好地解释我的意图以防万一。 我有一个类型的实例,它是某种抽象类型的子类,它有一些已知的方法。 我希望在运行时获得一个String,其中包含实例类型中此类方法之一的实际实现的源代码。 我认为值得指出的是,实例的实际类型可能是一个不可思议的内部类……而且源代码的“反编译”版本也足够好了。 我想要获取源的方法,大部分时间,只有一行…. 谢谢。

是否可以使用reflection在包中获取公共接口和类的集合?

是否可以使用reflection获取给定包中的公共接口和类的集合? 问题适用于Java 1.6 原因:我有一个包,其中一些类被注释。 我想自动收集它们以进行记录

反映清除Android应用缓存的方法

我试图清除除我自己以外的其他Android应用程序的应用程序缓存。 为此,我在PackageManager类上使用reflection。 但是,每当我在调用它之前初始化该方法时,它总是最终为null。 private void initiateClearUserData() { // Invoke uninstall or clear user data based on sysPackage String thePackageName; PackageManager pm = speedy.this.getPackageManager(); List installedApps = pm.getInstalledApplications(0); ApplicationInfo ai;// = installedApps.get(0); ActivityManager.RunningAppProcessInfo process; for(int x=0; x<4; x++){ ai = installedApps.get(x); 这是我的问题所在: thePackageName = ai.packageName.toString();// mAppEntry.info.packageName; Method deleteApplicationCacheFiles = null; mClearCacheObserver = new ClearCacheObserver(); try { […]

Java字节码操作和JavareflectionAPI?

我最近遇到了“字节码操作”这个术语(为了研究这个问题,我偶然看到了字节码提供程序,同时在使用Hibernate的应用程序中看到了日志)。 我也知道(有点)Java Reflection API。 这两个概念是否相似? 它们之间有什么区别? 什么时候用哪个?

无需初始化即可反复访问最终的静态变量

我试图从使用reflection的类中访问一堆最终的静态公共int。 但是这个类没有构造函数 – 例如android R.id。 我试图获取这些的所有int值,但由于您无法创建类,我似乎无法访问它。 我想可能只是为了创建一个构造函数来扩展它,但我不确定这是明智的。 有什么建议么? 我不能修改R.id或R.array(至少我不应该这么想)。 提前致谢! 乔恩

具有动态ArrayList项类型的Gson TypeToken

我有这个代码: Type typeOfObjectsList = new TypeToken<ArrayList>() {}.getType(); List objectsList = new Gson().fromJson(json, typeOfObjectsList); 它将JSON字符串转换为对象List 。 但是现在我希望这个ArrayList具有动态类型(不仅仅是myClass ),在运行时定义。 ArrayList的项类型将使用reflection定义。 我试过这个: private Type setModelAndGetCorrespondingList2(Class type) { Type typeOfObjectsListNew = new TypeToken<ArrayList>() {}.getType(); return typeOfObjectsListNew; } 但它不起作用。 这是例外: java.sql.SQLException: Fail to convert to internal representation: {….my json….}

MutableBigInteger的性能

我尝试使用BigInteger计算具有大精度(高达10000)的特定输入下的整数平方根的数字之和。 public class SquareRootHackerRankJarvis { static BigInteger limit; static BigInteger a; static BigInteger b; private static BigInteger squareroot(int n, BigInteger ten, BigInteger hundred, BigInteger five) { a = BigInteger.valueOf(n * 5); b = BigInteger.valueOf(5); while (b.compareTo(limit) == -1) { if (a.compareTo(b) != -1) { a = a.subtract(b); b = b.add(ten); } else { a = […]

如何在java中使用varargs作为Constructor.getConstructor()的参数

我有一个像下面这样的java类,我想通过使用类名动态创建这个类的实例。 class Demo { public Demo(String… s) { //some initialization here. } } 我想使用以下代码创建一个对象 Class klass = Class.forName(“Demo”); Constructor con = klass.getConstructor(“**what should be here**”); Object obj = con.newInstance(param1, param2, …);

访问自定义maven报告插件中的类

我编写了一个自定义maven报告插件来输出有关spring-mvc类的一些基本信息。 在我的内部测试中,我可以看到这样的代码: public Set<Class> findControllerClasses(File buildOutputDir) throws IOException, ClassNotFoundException { Collection urls = ClasspathHelper.forJavaClassPath(); if (buildOutputDir != null) { urls.add(buildOutputDir.toURI().toURL()); } Reflections reflections = new Reflections(new ConfigurationBuilder().setUrls(urls)); Set<Class> types = reflections.getTypesAnnotatedWith(Controller.class); return types; } 拉入带注释的课程时效果很好。 但是,当我在另一个项目中使用报告插件时,不会选择带注释的类。 有人可以阐明如何访问已编译的类以进行报告吗? 或者这是否可能? 编辑:使用以下答案部分解决: 将maven-build-classpath添加到插件执行类路径 但是,如果它们在maven的runtimeClasspathElements var之外没有依赖项,那么它只加载类。 有没有办法将这些类合并到classrealm中?