Questions tagged «java»

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


13
接口内的内部类
是否可以在接口内创建内部类? 如果可能的话,由于我们不打算创建任何接口对象,为什么还要创建一个内部类呢? 这些内部类在任何开发过程中都有帮助吗?

5
如何计算正则表达式的匹配数?
假设我有一个包含以下内容的字符串: HelloxxxHelloxxxHello 我编译一个模式以查找“ Hello” Pattern pattern = Pattern.compile("Hello"); Matcher matcher = pattern.matcher("HelloxxxHelloxxxHello"); 它应该找到三个匹配项。我如何计算有多少场比赛? 我尝试了各种循环并使用,matcher.groupCount()但没有成功。
97 java  regex 

5
使用Jackson将JSON反序列化为ArrayList <POJO>
我有一个Java类MyPojo,我对从JSON反序列化感兴趣。我已经配置了一个特殊的MixIn类MyPojoDeMixIn,以协助我进行反序列化。MyPojo只有int和String实例变量与适当的getter和setter方法相结合。MyPojoDeMixIn看起来像这样: public abstract class MyPojoDeMixIn { MyPojoDeMixIn( @JsonProperty("JsonName1") int prop1, @JsonProperty("JsonName2") int prop2, @JsonProperty("JsonName3") String prop3) {} } 在我的测试客户端中,我执行以下操作,但是它在编译时当然不起作用,因为JsonMappingException与类型不匹配有关。 ObjectMapper m = new ObjectMapper(); m.getDeserializationConfig().addMixInAnnotations(MyPojo.class,MyPojoDeMixIn.class); try { ArrayList&lt;MyPojo&gt; arrayOfPojo = m.readValue(response, MyPojo.class); } catch (Exception e) { System.out.println(e) } 我知道可以通过创建一个仅包含其中一个的“ Response”对象来缓解此问题ArrayList&lt;MyPojo&gt;,但是随后我将不得不为我想返回的每个单个类型创建这些有点无用的对象。 我也在线查看了JacksonInFiveMinutes,但经历了一段糟糕的时光,了解了有关这些问题Map&lt;A,B&gt;及其与我的问题的关系。如果您无法确定,我是Java的新手,并且来自Obj-C背景。他们特别提到: 除了绑定到POJO和“简单”类型外,还有另一种变体:绑定到通用(类型化)容器。这种情况由于所谓的Type Erasure(类型擦除)(Java使用它以某种向后兼容的方式实现泛型)而需要特殊处理,这使您无法使用Collection.class之类的东西(不会编译)。 因此,如果要将数据绑定到地图中,则需要使用: Map&lt;String,User&gt; result = mapper.readValue(src, new …
97 java  json  mapping  jackson 

17
JUnit测试在Eclipse中通过,但在Maven Surefire中失败
我已经使用JUnit 4和spring-test库编写了一些JUnit测试。当我在Eclipse中运行测试时,可以正常运行并通过。但是,当我使用Maven运行它们时(在构建过程中),它们无法给出与Spring相关的错误。我不确定是什么引起了问题,JUnit,Surefire或Spring。这是我的测试代码,spring配置以及我从Maven获得的异常: PersonServiceTest.java package com.xyz.person.test; import static com.xyz.person.util.FjUtil.toFjList; import static junit.framework.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.transaction.annotation.Transactional; import com.xyz.person.bo.Person; import com.xyz.person.bs.PersonService; import fj.Effect; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath*:personservice-test.xml" }) @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false) …

12
按属性将对象列表分组:Java
我需要使用特定对象的属性(位置)对对象(学生)的列表进行分组,代码如下所示, public class Grouping { /** * @param args the command line arguments */ public static void main(String[] args) { List&lt;Student&gt; studlist = new ArrayList&lt;Student&gt;(); studlist.add(new Student("1726", "John", "New York")); studlist.add(new Student("4321", "Max", "California")); studlist.add(new Student("2234", "Andrew", "Los Angeles")); studlist.add(new Student("5223", "Michael", "New York")); studlist.add(new Student("7765", "Sam", "California")); studlist.add(new Student("3442", …
97 java  list  grouping 

13
Jackson Databind枚举不区分大小写
如何反序列化包含不区分大小写的枚举值的JSON字符串?(使用Jackson Databind) JSON字符串: [{"url": "foo", "type": "json"}] 和我的Java POJO: public static class Endpoint { public enum DataType { JSON, HTML } public String url; public DataType type; public Endpoint() { } } 在这种情况下,使用JSON反序列化"type":"json"将无法"type":"JSON"正常进行。但"json"出于命名约定的原因,我也想工作。 序列化POJO也会导致大写 "type":"JSON" 我想到了使用@JsonCreator@JsonGetter: @JsonCreator private Endpoint(@JsonProperty("name") String url, @JsonProperty("type") String type) { this.url = url; this.type = …

2
打印所有JVM标志
找到了一个有趣的JVM Flag: java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version 它可以打印数百种各种选项,我以前从未听说过。它还会打印默认值,以帮助更好地诊断JVM行为。另一个有趣的标志是: -XX:+UnlockExperimentalVMOptions 有谁知道解释其中每一个的任何文档?



12
远程JMX连接
我正在尝试打开与远程计算机上运行的Java应用程序的JMX连接。 应用程序JVM配置有以下选项: com.sun.management.jmxremote com.sun.management.jmxremote.port = 1088 com.sun.management.jmxremote.authenticate = false com.sun.management.jmxremote.ssl = false 我可以localhost:1088使用jconsole或jvisualvm 进行连接。但是我无法使用xxx.xxx.xxx.xxx:1088远程计算机进行连接。 服务器之间或操作系统上没有防火墙。但是为了消除这种可能性,我telnet xxx.xxx.xxx.xxx 1088和我认为它可以连接,因为控制台屏幕变黑。 两台服务器均为Windows Server 2008 x64。尝试使用64位JVM和32位,两者均无效。
97 java  jmx  jconsole 


10
杰克逊通过删除'is'重命名原始布尔字段
这可能是重复的。但是我找不到解决问题的方法。 我有一堂课 public class MyResponse implements Serializable { private boolean isSuccess; public boolean isSuccess() { return isSuccess; } public void setSuccess(boolean isSuccess) { this.isSuccess = isSuccess; } } 获取器和设置器由Eclipse生成。 在另一个类中,我将该值设置为true,并将其写为JSON字符串。 System.out.println(new ObjectMapper().writeValueAsString(myResponse)); 在JSON中,关键字为{"success": true}。 我想要钥匙isSuccess本身。杰克逊在序列化时是否使用setter方法?如何使关键字成为字段名称本身?
97 java  json  jackson 

10
为什么我=我+我给我0?
我有一个简单的程序: public class Mathz { static int i = 1; public static void main(String[] args) { while (true){ i = i + i; System.out.println(i); } } } 当我运行该程序时,我看到的只是0用于i输出。我原本希望我们会遇到第一轮i = 1 + 1,然后是i = 2 + 2,然后是i = 4 + 4etc。 这是由于这样的事实,我们尝试i在左侧重新声明时,其值会重置为0? 如果有人可以指出我的详细情况,那将很棒。 更改int为long,似乎正在按预期方式打印数字。我对它达到最大32位值的速度感到惊讶!

14
为什么要编译此Java代码?
在方法或类范围内,下面的行进行编译(带有警告): int x = x = 1; 在类范围中,变量获取其默认值,以下给出“未定义引用”错误: int x = x + 1; 它不是第一个x = x = 1应该以相同的“未定义参考”错误结束吗?还是第二行int x = x + 1应该编译?还是我缺少什么?

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.