Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。

15
我们应该@Override接口的方法实现吗?
实现接口方法的方法是否应带有注释@Override? 注释的JavadocOverride说: 指示方法声明旨在覆盖超类中的方法声明。如果使用此注释类型对方法进行注释但未覆盖超类方法,则要求编译器生成错误消息。 我认为接口从技术上讲不是超类。还是? Question Elaboration



11
为什么JUnit不提供assertNotEquals方法?
有人知道为什么JUnit 4提供 assertEquals(foo,bar)但不assertNotEqual(foo,bar)方法吗? 它提供了assertNotSame(对应于assertSame)和assertFalse(对应于assertTrue),因此它们似乎没有包含在内就显得很奇怪assertNotEqual。 顺便说一句,我知道JUnit插件提供了我正在寻找的方法。我只是出于好奇而问。
429 java  junit  assert 


22
解决javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败错误?
编辑:-试图在我的博客上以更合理的方式格式化问题和接受的答案 这是原始问题。 我收到此错误: 详细消息sun.security.validator.ValidatorException:PKIX路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效认证路径 导致javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径 我正在使用Tomcat 6作为Web服务器。我有两个HTTPS Web应用程序安装在不同端口上但在同一台机器上的不同Tomcat上。说App1(port 8443)和 App2(port 443)。App1连接到App2。当App1连接到App2我得到以上错误。我知道这是一个非常常见的错误,因此在不同的论坛和站点上遇到了许多解决方案。我在server.xml两个Tomcat中都有以下条目: keystoreFile="c:/.keystore" keystorePass="changeit" 每个站点都表示由app2颁发的证书不在app1 jvm的受信任存储区中的相同原因。当我尝试在IE浏览器中命中相同的URL时,这似乎也是正确的(工作正常,此网站的安全证书有问题。在这里我说继续浏览此网站)。但是当Java客户端(在我的情况下)击中相同的URL时,我得到了上面的错误。因此,将其放入信任库中,我尝试了以下三个选项: 选项1 System.setProperty("javax.net.ssl.trustStore", "C:/.keystore"); System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); Option2 在环境变量中进行以下设置 CATALINA_OPTS -- param name -Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit ---param value Option3 在环境变量中进行以下设置 JAVA_OPTS -- param name -Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit ---param value 但是没有任何效果。 最后 执行的工作是执行如何使用Apache HttpClient处理无效的SSL证书中建议的Java方法?由Pascal Thivent设计,即执行程序InstallCert。 但是这种方法对于devbox设置来说很好,但是我不能在生产环境中使用它。 我很奇怪,为什么三种方法时,我已经中提到的相同值上面提到没有工作server.xml的app2服务器和相同的价值观在信任的设置 System.setProperty("javax.net.ssl.trustStore", "C:/.keystore") …
426 java  ssl  https 

21
如何使用Java从Internet下载和保存文件?
http://www.example.com/information.asp我需要获取一个在线文件(例如),并将其保存到目录中。我知道有几种方法可以逐行抓取和读取在线文件(URL),但是有没有一种方法可以使用Java下载和保存文件?
425 java  download 

19
将Iterable转换为Collection的简单方法
在我的应用程序中,我使用3rd party库(确切地说是MongoDB的Spring数据)。 该库的方法返回Iterable<T>,而我的其他代码则期望Collection<T>。 是否有任何实用程序方法可以让我快速将一个转换为另一个?我想避免foreach在代码中创建这么简单的一堆循环。
424 java  collections 


18
如何在Windows 7上设置java_home?
我转到控制面板中“系统”中的“环境变量”,并创建了两个新变量,一个用于用户变量,另一个用于系统变量。两者都被命名为JAVA_HOME并且都指向 C:\ Sun \ SDK \ jdk \ bin 但是由于某种原因,运行Java命令时我仍然收到以下错误... BUILD FAILED C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:161: The following error occurred while executing this line: C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:141: The following error occurred while executing this line: C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:137: Please set java.home to a JDK installation Total time: 1 second C:\Users\Derek\Desktop\eclipse\eclipse\glassfish>lib\ant\bin\ant -f setup.xml Unable to locate tools.jar. Expected …

29
从字符串中删除HTML标签
有什么好方法可以从Java字符串中删除HTML?一个简单的正则表达式 replaceAll("\\<.*?>","") 会工作,但是类似 &不会正确转换,并且两个尖括号之间的非HTML也会被删除(即.*?,正则表达式中的将会消失)。
422 java  html  parsing 

4
创建完美的JPA实体
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我已经使用JPA(实现休眠)一段时间了,每次我需要创建实体时,我都会遇到诸如AccessType,不可变属性,equals / hashCode等问题。 因此,我决定尝试找出每个问题的最佳常规做法,并写下来供个人使用。 但是,我不介意让任何人对此发表评论或告诉我我错了。 实体类 实现可序列化 原因:规范要求您必须这样做,但是某些JPA提供程序没有强制执行此操作。作为JPA提供程序的Hibernate不会强制执行此操作,但是如果尚未实现Serializable,它可能会因ClassCastException失败而失败。 建设者 用实体的所有必填字段创建一个构造函数 原因:构造函数应始终使创建的实例保持健全状态。 除了这个构造函数:还拥有一个包私有的默认构造函数 原因:Hibernate需要默认构造函数来初始化实体;允许使用private,但是在没有字节码检测的情况下,包私有(或公共)可见性对于运行时代理生成和有效的数据检索是必需的。 字段/属性 在一般情况下使用字段访问,在需要时使用属性访问 原因:这可能是最有争议的问题,因为没有明确的,令人信服的论点(财产使用权与实地使用权);但是,由于更清晰的代码,更好的封装并且无需为不可变字段创建设置器,因此字段访问似乎是普遍喜欢的方法 省略不可变字段的设置器(访问类型字段不需要) 属性可能是私有的 原因:我曾经听说保护(Hibernate)的性能更好,但是我在网上可以找到的是:Hibernate可以直接访问公共,私有和受保护的访问器方法,以及公共,私有和受保护的字段。 。选择取决于您,您可以将其匹配以适合您的应用程序设计。 等于/哈希码 如果仅在持久化实体时设置此ID,请不要使用生成的ID 根据喜好:使用不可变值形成唯一的业务密钥,并使用它来测试是否相等 如果唯一的业务密钥不可用,则使用在初始化实体时创建的非临时UUID;有关更多信息,请参见这篇出色的文章。 从不引用相关实体(ManyToOne);如果此实体(如父实体)需要成为业务密钥的一部分,则仅比较ID。只要使用属性访问类型,在代理上调用getId()不会触发实体的加载。 实体实例 @Entity @Table(name = "ROOM") public class Room implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue @Column(name = …
422 java  hibernate  jpa  equals 

17
删除StringBuilder的最后一个字符?
当您必须遍历一个集合并用分隔符分隔每个数据的字符串时,总是总是在末尾使用一个额外的分隔符,例如 for (String serverId : serverIds) { sb.append(serverId); sb.append(","); } 类似于:serverId_1,serverId_2,serverId_3, 我想删除StringBuilder中的最后一个字符(不进行转换,因为在此循环之后我仍然需要它)。

30
“ PKIX路径构建失败”和“无法找到到所请求目标的有效认证路径”
我正在尝试为我的Java项目使用twitter4j库获取推文。在我的第一次跑步中,我得到了关于证书sun.security.validator.ValidatorException和的错误sun.security.provider.certpath.SunCertPathBuilderException。然后我通过以下方式添加了Twitter证书: C:\Program Files\Java\jdk1.7.0_45\jre\lib\security>keytool -importcert -trustcacerts -file PathToCert -alias ca_alias -keystore "C:\Program Files\Java\jdk1.7.0_45\jre\lib\security\cacerts" 但是没有成功。这是获取推文的过程: public static void main(String[] args) throws TwitterException { ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebugEnabled(true) .setOAuthConsumerKey("myConsumerKey") .setOAuthConsumerSecret("myConsumerSecret") .setOAuthAccessToken("myAccessToken") .setOAuthAccessTokenSecret("myAccessTokenSecret"); TwitterFactory tf = new TwitterFactory(cb.build()); Twitter twitter = tf.getInstance(); try { Query query = new Query("iphone"); QueryResult result; result …
422 java  jsp  servlets  twitter4j 

30
如何大写字符串中每个单词的第一个字符
Java中是否内置了一个函数,该函数可以大写字符串中每个单词的第一个字符,而不会影响其他单词? 例子: jon skeet -> Jon Skeet miles o'Brien-> Miles O'Brien(B仍然是大写字母,这排除了标题大小写) old mcdonald-> Old Mcdonald* *(Old McDonald也可以找到,但我不希望它这么聪明。) 快速浏览一下Java String Documentation仅显示toUpperCase()和toLowerCase(),当然它们并不能提供所需的行为。自然,这两个函数将Google的搜索结果作为主导。似乎必须已经发明了一个轮子,所以问这个问题不会有任何伤害,因此我将来可以使用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.