草庐IT

java - 获取包中声明的所有 Java 类的名称

我正在编写一个功能,它有助于将类放入我的程序的某个包中。另外,我只想要某个类的子类。我需要这些类以便对其调用静态方法。是否有自动执行此操作的方法?如果是这样,速度慢吗?如果我不清楚,我想要的是这样的:ArrayList>classes=;classes.add(MyClass.class);classes.add(MyClass2.class);我不想为每个类(class)调用add,而是希望自动获取该类(class)列表。类的数量很少,所以如果自动技巧会很慢,我不介意手动声明它们-这个应用程序适用于移动平台。无论哪种方式,我还想知道如何为ArrayList中的每个方法调用静态方法:/

java - 如何将一个类注入(inject)到java.lang包中

当尝试通过java.lang.instrument.Instrumentation#appendToBootstrapClassLoaderSearch注入(inject)java.lang命名空间中的类时在OpenJDK11上,没有任何反应,也没有抛出任何错误。将类注入(inject)到不同的包中时,它按预期工作。JarFilejar=newJarFile(newFile("file/to/bootstrap.jar));instrumentation.appendToBootstrapClassLoaderSearch(jar);//throwsClassNotFoundExcep

java - JPA 如何识别两个具有相同名称但位于不同包中的类?

我的项目使用JPA和Hibernate。我有两个具有相同名称但在不同包中的类。它们是:@Entity(name="X_USER")@Table(name="X_USER")publicclassUser{和:@Entity@Table(name="Y_USER")publicclassUser{我正在创建一个搜索查询:.getSimpleName()但它不起作用,因为它们的简单名称相同。我将其更改为.getName()。但是,它仍然混淆返回哪个User。编辑:我有:SELECT_BY_PROPERTY_QUERY="SELECTpFROM:CLASS:pWHEREp.:PROPNAME

java - 在 Eclipse 中将 JAR 嵌入到 OSGi 包中

我需要在Eclipse中开发的OSGi包中嵌入第三方JAR文件。我做了很多搜索和阅读,并且一遍又一遍地看到相同的东西:我真的不应该这样做。这不是OSGi做事的“方式”。这实际上很容易做到。只需将JAR嵌入包的根目录并在list中指定Bundle-ClassPath:.,jar_filename.jar。好的。除了我嵌入的JAR很小而且不太可能被我将在这个封闭系统上实现的任何其他东西使用,所以嵌入它要容易得多,这样用户只需要下载一个包(最终易于使用-用户至关重要)。所以我要打破常规并将其嵌入。现在,在IDE中,一切都是正确的。我将JAR放在我的Eclipse项目的src文件夹中,并配置项

java - 为什么 GCJ 找不到我导入的包中的类?

我想将小型Java应用程序编译为Windows可执行文件。应用程序很小,只有一个主类,但它使用ApachePOI。当我编译它时,一切正常,只要我将POIJar放入类路径参数中即可。但是当涉及到链接时,GCJ无法解析对POI包中类的引用。消息都是这样的:undefinedreferencetp'org::apache::poi:hssf:usermodel:HSSFWorkbook::class$'要链接我的应用程序,我必须做什么? 最佳答案 你必须将导入的Jars单独编译成.so库。确保在编译库和编译代码时都在--classpath

java - 不应使用 "com.sun.*"和 "sun.*"包中的类 Sonar issue for Jersey client

我正在使用jersey客户端进行休息调用。我的代码的导入是:importcom.sun.jersey.api.client.Client;importcom.sun.jersey.api.client.ClientResponse;importcom.sun.jersey.api.client.WebResource;一切正常。我正在使用Sonar检查我的代码质量。Sonar显示的主要问题是:Classesfrom"com.sun."and"sun."packagesshouldnotbeused这实际上是使用来自sun的类的不良做法吗?如果是,有哪些替代方案?

java - 如何访问同一个包中的Java类

我在src/com/example中有两个java文件(A.java+B.java)A.javapackagecom.example;publicclassA{publicvoidsayHello(){System.out.println("Hello");}}B.javapackagecom.example;publicclassB{publicstaticvoidmain(String...args){Aa=newA();a.sayHello();}}如果我cd到src之上的一级并键入javac-dclassessrc/com/example/B.java我收到一条错误消息说找不到

java - 为什么包保护方法在同一个包中不可见?

假设我们有两个包p1和p2以及由p2.M12扩展的类p1.M1作为如下:packagep1;publicclassM1{voidmethod1(){System.out.println("Method1called");}}packagep2;importp1.M1;publicclassM12extendsM1{voidmethod2(){System.out.println("Method2called");}}让我们用p2.B扩展M12:packagep2;publicclassBextendsM12{publicvoiddoSomething(){method1();metho

java - JDBC/OSGi 以及如何动态加载驱动程序而无需在包中明确声明依赖关系?

这是一个大问题。我有一个结构良好但单一的代码库,它有一个原始的模块化架构(所有模块实现接口(interface)但共享相同的类路径)。当我在应用程序服务器上进行部署时,我意识到这种方法的愚蠢以及它所代表的问题,这些应用程序服务器可能具有我的库的不同冲突版本。我现在依赖大约30个jar,并且正在中途将它们捆绑在一起。现在我的一些模块很容易声明版本化的依赖关系,比如我的网络组件。它们在JRE和其他BNDded库中静态引用类,但我的JDBC相关组件通过Class.forName(...)实例化,并且可以使用任意数量的驱动程序之一。我正在按服务区域将所有内容分解为OSGi包。我的核心类/接口(

java - 为什么接口(interface)和xml映射器文件必须在同一个包中并具有相同的名称?

今天准备了一个使用SpringBoot的例子,在Spring-MyBatis旁边使用MyBatis进行数据访问通信。下面是相关的项目配置(使用maven):src/main/java-edu.home.ltmj.controller+CategoryController.java-edu.home.ltmj.dao+CategoryDao.java-edu.home.ltmj.domain+Category.javasrc/main/resources-edu.home.ltmj.dao+CategoryMapper.xml相关文件内容:CategoryDao.java:package