草庐IT

java - 从 Enum 中的类初始化一个新对象

我有一个名为插件的枚举:publicenumPlugins{ROTATING_LINE(plugin.rotatingline.RotatingLine.class),SNOW_SYSTEM(plugin.snow.SnowSystem.class);privateClassc;privatePlugins(Classc){this.c=c;}publicClassgetClassObject(){returnc;}}我想做的是遍历Plugins中的所有枚举,并从那些使用变量c的枚举中创建新对象,如下所示:for(Pluginsplugins:Plugins.values()){Cla

java - 控制 servlet 中的类路径

我的servlet应用程序包含许多库.jars,其中一些包含嵌入式log4j.xml或log4j.properties文件。我想确保log4j首先找到我的log4j.xml!我已经尝试搜索servlet中各种类路径元素的优先级的一些规范(例如,WEB-INF/classes是否总是在WEB-INF/lib之前?),或者一些配置或调整servlet类加载器的方法,以便给定的资源目录出现在类路径的早期。到目前为止,我画了一个空白。关于确保servlet.war文件通过类加载器加载正确的log4j.xml有什么建议吗? 最佳答案 Tomc

Java - Eclipse 上的类路径问题

我正在尝试重新编译我一直在处理的项目,但在尝试加载属性文件时我不断收到错误消息:Thesystemcannotfindthepathspecified.我想这与类路径有关。但是我已经在Properties->Javabuildpath->Libraries(externalclass)中添加了文件路径。我也查看了eclipse生成的.classpath文件,果然路径是有的!为什么Eclipse没有寻找正确的路径? 最佳答案 有2个不同的类路径,构建类路径和运行时类路径。您设置的是构建类路径。通过转到Run->RunConfigura

java - 只有静态方法的类应该是抽象的吗?

我有一个提供静态实用类型方法集合的类。一方面,我不希望类能够被实例化。另一方面,我不想发出应该继承该类的信号(我认为这不太可能)。这个类是否应该抽象? 最佳答案 将类设为final并将默认构造函数设为private并且不提供任何public构造函数。这样一来,就没有人可以对其进行子类化或创建它的实例。 关于java-只有静态方法的类应该是抽象的吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

java - 升级到 Java7 后构建失败,缺少 Tools.jar 和错误的类版本

我最近在我的MacbookPro上升级到Java7。我下载了JDK(不是JRE)。»javacversionjavac1.7.0_17»echo$JAVA_HOME/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home但是,当尝试运行构建时,其中一个Maven编译器插件失败,声称我安装了JRE:»mvninstall[ERROR]executeerrororg.apache.maven.plugin.MojoExecutionException:YouneedtorunbuildwithJDKorhavetools

java - 自动实例化一个新部署的war文件中的类

假设我想确保该类在部署到它所在的war的Tomcat中时被实例化。例如,一个类有一个静态初始化程序,它启动一个线程,该线程定期打印CPU使用率。我需要这个类在Tomcat一加载war就开始监控。有没有一种方法可以做到这一点,而不必调用具有此类引用的Servlet,以便ClassLoader加载它并执行静态初始化程序? 最佳答案 如commentabove中所述,您可以使用servlet上下文监听器来完成这项工作。Thisanswer展示了如何实现该类。 关于java-自动实例化一个新部署

java - 是否可以使用 javassist java 核心类进行检测?引导类加载器加载的类

我想在核心JDK5类的方法上添加“insertBefore”。由于某种原因,它不工作。下面是代码示例:ClassPoolpool=ClassPool.getDefault();CtClassctClass=pool.get("com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter");CtMethodctMethod=ctClass.getDeclaredMethods()[0];ctMethod.insertBefore("System.out.println(\"WORKED\");");ctClass.toCla

java - 在参数上调用静态方法而不实例化参数中的类

我真的开始接触TDD,并且开始在jUnit中使用mockito来提高我测试代码的能力。我真的很喜欢mockito!我注意到我必须改变我对编码的思考方式,例如尽可能将协作者传递给方法并尽可能限制在构造函数中完成的工作。以下场景值得专家们就SO提出一些建议。假设我有一个方法,它将在某个类上调用一些静态方法。例如publicvoidmethod(){OtherClass.staticMethod();}这通常是不好的,但在我的场景中需要它。为了使代码在我的单元测试中更易于测试,我想避免对OtherClass的依赖并将其作为参数传递。这不起作用,因为它会产生编译时错误。publicvoidme

java - 如何模拟难以实例化的类 (javax.mail.Message)?

我想在我的下一个项目中使用junit测试,但我不确定我应该使用几个模拟包中的哪一个。我还阅读了一些教程,但没有找到如何解决下面概述的特定问题的信息。也许该功能在我checkout的软件包中不可用。这就是问题所在:我想编写一个遍历List的电子邮件过滤器类并按主题、日期、发件人、收件人等过滤电子邮件。要测试的代码如下所示:publicListdoFilter(ListmessageList){ListnewList=newArrayList(messageList.size());try{for(Messagemessage:messageList){if(start!=null){Da

java - 由于编译的类文件中缺少调试信息而导致的 Paranamer 错误

我正在尝试在WebSphere上部署的应用程序上运行springbatch。当我使用Eclipse运行批处理时,一切都运行良好,但是当我在WebSphere上部署的应用程序中运行相同的批处理时,它会出错com.thoughtworks.paranamer.ParameterNamesNotFoundException:ParameternamesnotfoundforexecuteMethodatcom.thoughtworks.paranamer.BytecodeReadingParanamer$TypeCollector.getParameterNamesForMethod(Byt