在Java 5中引入generics的原因

有人能解释一下Java中引入generics的原因吗? 据我所知,它们的介绍使您不会意外地将错误类型的对象添加到集合中。 我有点喜欢收集的generics,但不知道为什么它们也被添加到其他类中。 我见过一些让你的头部疼痛,眼睛流血的通用课程。 那么generics的所有原因是什么(主要是非收集)? TIA!

使用Apache Commons电子邮件发送邮件时出现问题

我正在尝试使用commons电子邮件发送简单的文本电子邮件 Email email = new SimpleEmail(); email.setHostName(“smtp.gmail.com”); email.setSmtpPort(587); email.setAuthenticator(new DefaultAuthenticator(“user@gmail.com”, “123456”)); email.setTLS(true); email.setFrom(from); email.setSubject(subject); email.setMsg(mesage); email.addTo(“to@gmail.com”); email.send(); 但是当我尝试发送电子邮件时,我得到了以下exception: 我错过了什么吗?

glassfish服务器JDK / JRE问题

我正试图在我的日食Juno中设置grassfish4服务器。 我安装了JDK1.8.0-05和jre8。 当我创建新服务器时,我选择JDK1.8.0-0“此服务器运行时需要JRE 1.7或更高版本。”。 当我选择jre时,我得到这个“Glassfish服务器运行时需要完整的JDK而不是JRE”。 在preference-java-Installed JREs选项卡中,我检查了JDK。 并指向位置C:\ Program Files(x86)\ Java \ jdk1.8.0_05和我未选中的jre指向C:\ Program Files(x86)\ Java \ jre8。 我需要做些什么设置才能解决这个问题? 请建议。

我如何在java中为我的Fitnesse Fixture传递程序参数?

我有一个需要将一些System参数传递给它的fixture。我怎么能这样做。 即java MyClass -Darg1 = x -Darg2 = y 我如何将-Darg值传递给我的测试。 @担。 我的错误,我提到了命令行参数。我真正打算做的是按照你的指示传递系统属性。我有一些设置,如Region(NA / EMEA等),Environment(SIT / UAT)等基于各种url等我必须在Fitnesse中进行测试,在那里我从决策表中传递测试屏幕的值。但是我想能够决定这些测试应该在某种区域/ env组合上运行。我有一个junit Test触发Selenium播放,我通过传递-Dregion等来控制它从IDE / Maven的调用。我和Fitnesse想知道如何传递这些System参数,以便我的Fixture在被调用时可以访问这些属性,它会相应地触发Selenium的播放。

用模量计算大功率

我目前正在研究一些我需要计算类似值的东西 (65 ^ 17)mod 3233 = * 上述问题的答案是2790,但是因为65 ^ 17大于Math.pow可以返回的值,所以它总是给出错误的答案。 我已经使用BigIntegers(以及内置的modPow)编写了一个实现,但是如果可能的话我想避免使用它们。 有没有其他方法可以避免使用BigIntegers?

无法使用Maven依赖项运行Htmlunit应用程序

我通过在pom.xml中添加以下内容添加了Htmlunit Maven依赖项 net.sourceforge.htmlunit htmlunit 2.18 当我尝试运行该应用程序时,我收到以下错误: Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/http/conn/ssl/NoopHostnameVerifier at com.gargoylesoftware.htmlunit.httpclient.HtmlUnitSSLConnectionSocketFactory.buildSSLSocketFactory(HtmlUnitSSLConnectionSocketFactory.java:112) at com.gargoylesoftware.htmlunit.HttpWebConnection.configureHttpsScheme(HttpWebConnection.java:597) at com.gargoylesoftware.htmlunit.HttpWebConnection.createHttpClient(HttpWebConnection.java:532) at com.gargoylesoftware.htmlunit.HttpWebConnection.getHttpClientBuilder(HttpWebConnection.java:494) at com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConnection.java:158) at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1321) at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1238) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:346) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:415) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:400) 以下是我的pom.xml,因为我的pom.xml非常冗长,我删除了一些部分,如属性,配置文件等。 log4j apache-log4j-extras 1.2.17 io.dropwizard.metrics metrics-core io.dropwizard.metrics metrics-annotation ${dropwizard-metrics.version} io.dropwizard.metrics metrics-ehcache ${dropwizard-metrics.version} io.dropwizard.metrics metrics-graphite io.dropwizard.metrics metrics-healthchecks ${dropwizard-metrics.version} io.dropwizard.metrics metrics-json ${dropwizard-metrics.version} io.dropwizard.metrics metrics-jvm ${dropwizard-metrics.version} […]

在java中添加两个大数组的元素

我必须想出一个算法,它添加了两个大数组的元素(每个数组的大小是10⁹整数,可以达到10⁹)。 在java中声明两个大小为10⁹的数组时,我得到一个内存exception! 问题陈述: http : //bit.ly/1XWbUca

如何有效地使用PreparedStatement?

我喜欢使用DAO模式,并且有一个类可以为特定的表和JPA实体执行所有SQL请求。 我有例如: public class MyDao { @PersistenceContext(name = “mycontext”) private EntityManager entityManager; public List find(String code) { return getEntityManager() .createQuery(“FROM MyEntity e WHERE e.code = :code”) .setParameter(“code”, code) .getResultList(); } } 但我也知道我们可以使用静态方法直接在实体类上使用命名查询(我不喜欢这种方式): @Entity @Table @NamedQueries({ @NamedQuery(name = “find”, query = “FROM MyEntity e WHERE e.code = :code”) }) public class MyEntity { … public static […]

使用RowFilter无法正常查询HBase表

我有一个HBase表(来自java),我想通过键列表查询表。 我做了以下,但它不起作用。 mFilterFeatureIt = mFeatureSet.iterator(); FilterList filterList=new FilterList(FilterList.Operator.MUST_PASS_ONE); while (mFilterFeatureIt.hasNext()) { long myfeatureId = mFilterFeatureIt.next(); System.out.println(“FeatureId:”+myfeatureId+” , “); RowFilter filter = new RowFilter(CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes(myfeatureId)) ); filterList.addFilter(filter); } outputMap = HbaseUtils.getHbaseData(“mytable”, filterList); System.out.println(“Size of outputMap map:”+ outputMap.szie()); public static Map<String, Map> getHbaseData(String table, FilterList filter) { Map<String, Map> data = new HashMap<String, Map>(); HTable htable = […]

在Windows上使用JDK 1.4进行Tomcat 5.5监控

根据此文档http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html#Enabling_JMX_Remote应该可以远程监视在JDK 1.4上运行的Tomcat 5.5服务器,但是在搜索了整个Web并尝试之后多个操作系统我还没有比第一天更进一步。 到目前为止我的结果是。 用标准设置Tomcat -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=%my.jmx.port% -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=localhost 将在JDK 1.5及更高版本上正常运行。 调试到Tomcat使我可以访问MBeanServer,但我无法从外部连接到它。 根据维基百科http://en.wikipedia.org/wiki/Java_Management_Extensions的信息,我只需要一个工作连接器,我不知道如何使其工作。 尝试根据设置HTTP适配器 完全没有效果。 当我调试它几乎看起来像属性handler.list和mx。*只是被忽略。 我知道我应该只使用JDK 1.5,我的担忧就会消失,但我们有一个很大的JDK 1.4遗留安装基础,如果我们可以使用JMX监控,它会很棒。 最终我想使用JConsole或JVisualVM连接到Tomcat,据我所知,连接URL看起来像 service:jmx:rmi:///jndi/rmi://localhost:8888/jmxrmi 8888是我的JMX端口。 如果有人对如何深入研究问题的根源有一些建议或想法,那将非常有帮助。