Questions tagged «java»

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

5
Spring .properties文件:将元素作为数组获取
我正在.properties使用Spring 从文件加载属性属性,如下所示: file: elements.properties base.module.elementToSearch=1 base.module.elementToSearch=2 base.module.elementToSearch=3 base.module.elementToSearch=4 base.module.elementToSearch=5 base.module.elementToSearch=6 Spring xml文件 file: myapplication.xml <bean id="some" class="com.some.Class"> <property name="property" value="#{base.module.elementToSearch}" /> </bean> 还有我的Class.java file: Class.java public void setProperty(final List<Integer> elements){ this.elements = elements; } 但是在调试时,参数元素仅将最后一个元素放入列表中,因此,存在一个值为“ 6”的元素的列表,而不是包含6个元素的列表。 我尝试了其他方法,例如仅添加值,#{base.module}但随后在属性文件中找不到任何参数。 一种解决方法是在elements.properties文件中使用逗号分隔列表,例如: base.module.elementToSearch=1,2,3,4,5,6 并将其用作String并解析它,但是有更好的解决方案吗?



8
FetchMode如何在Spring Data JPA中工作
我确实在项目中的三个模型对象之间有关系(文章末尾的模型和存储库片段)。 当我调用PlaceRepository.findById它时,会触发三个选择查询: (“ sql”) SELECT * FROM place p where id = arg SELECT * FROM user u where u.id = place.user.id SELECT * FROM city c LEFT OUTER JOIN state s on c.woj_id = s.id where c.id = place.city.id (对我而言)这是非常不正常的行为。据我阅读Hibernate文档后所知,它应该始终使用JOIN查询。在类中FetchType.LAZY更改为 查询时(带有附加SELECT 的查询)没有任何区别,而在类更改为 (使用JOIN查询时)则没有变化。FetchType.EAGERPlaceCityFetchType.LAZYFetchType.EAGER 当我使用CityRepository.findById抑制射击时,有两个选择: SELECT * FROM city c …

20
休眠错误:具有相同标识符值的另一个对象已与会话关联
在这个配置中,我本质上有一些对象(实际的数据模型要复杂一些): A与B有多对多关系。(B具有inverse="true") B与C具有多对一关系(我已cascade设置为"save-update") C是一种类型/类别表。 另外,我可能应该提到主键是在保存时由数据库生成的。 使用我的数据,有时我会遇到这样的问题:A具有一组不同的B对象,而这些B对象引用了相同的C对象。 打电话时session.saveOrUpdate(myAObject),我收到了一个休眠错误消息:"a different object with the same identifier value was already associated with the session: C"。我知道休眠不能在同一会话中两次插入/更新/删除相同的对象,但是有什么办法解决吗?这似乎不是一种罕见的情况。 在研究此问题的过程中,我看到人们建议使用session.merge(),但是当我这样做时,所有“冲突”对象都会作为空白对象插入数据库,并且所有值都设置为null。显然,这不是我们想要的。 [编辑]我忘了提及的另一件事是(由于无法控制的体系结构原因),每次读取或写入都需要在单独的会话中完成。
91 java  hibernate 

27
注册表项错误:Java版本的值为'1.8',但必须为'1.7'
在跑步的时候 sencha app build production 我收到以下错误: 错误:注册表项'Software \ JavaSoft \ Java Runtime Environment'\ CurrentVersion' 的值为“ 1.8”,但必须为“ 1.7”。错误:找不到java.dll错误:找不到Java SE运行时环境。 java -version ,命令显示如下: Java版本“ 1.8.0_40” Java™SE运行时环境(内部版本1.8.0_40-b26)Java HotSpot(TM)64位服务器VM(内部版本25.40-b25,混合模式) 找不到路径出问题的地方。任何想法? -----------------------编辑-------------------------- ---------------------- 注意:我正在使用Windows 7(64位)。 我尝试卸载sencha touch cmd并重新安装。但是还是一样的错误。 我已经卸载了所有的Java版本实例并重新安装了最新的实例,但是问题仍然存在。


11
将Java方法参数作为最终参数
final下面的代码之间有什么区别?将参数声明为是有什么好处final? public String changeTimezone( Timestamp stamp, Timezone fTz, Timezone toTz){ return .... } public String changeTimezone(final Timestamp stamp, final Timezone fTz, final Timezone toTz){ return .... }

3
使用Jackson的ObjectMapper的JSON对象的顺序
我正在使用ObjectMapper进行java-json映射。 ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); ow.writeValue(new File( fileName +".json"), jsonObj); 这是我的java类: public class Relation { private String id; private String source; private String target; private String label; private List<RelAttribute> attributes; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getSource() …
91 java  json  jackson 

9
如何编写可以在运行时进行自我更新的Java应用程序?
我想实现一个Java应用程序(服务器应用程序),该应用程序可以从给定的URL下载新版本(.jar文件),然后在运行时进行自身更新。 最好的方法是什么,有可能吗? 我猜该应用程序可以下载一个新的.jar文件并启动它。但是我应该如何进行切换,例如知道何时启动新应用程序然后退出。还是有更好的方法来做到这一点?

3
为什么缺少的注释在运行时不会导致ClassNotFoundException?
考虑以下代码: A.java: import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) @interface A{} C.java: import java.util.*; @A public class C { public static void main(String[] args){ System.out.println(Arrays.toString(C.class.getAnnotations())); } } 编译并按预期运行作品: $ javac *.java $ java -cp . C [@A()] 但是请考虑一下: $ rm A.class $ java -cp . C [] 我本来希望它抛出一个ClassNotFoundException,因为@A丢失了。但是,它会静默删除注释。 是在JLS的某个地方记录了此行为,还是Sun的JVM的怪癖?这样做的理由是什么? 看起来很方便javax.annotation.Nonnull(@Retention(CLASS)反之亦然),但对于许多其他注释,它似乎可能导致运行时发生各种不良情况。
91 java  annotations 


9
为什么Spring MVC会以404响应并报告“在DispatcherServlet中未找到带有URI […]的HTTP请求的映射”?
我正在编写部署在Tomcat上的Spring MVC应用程序。请参见以下最小,完整和可验证的示例 public class Application extends AbstractAnnotationConfigDispatcherServletInitializer { protected Class<?>[] getRootConfigClasses() { return new Class<?>[] { }; } protected Class<?>[] getServletConfigClasses() { return new Class<?>[] { SpringServletConfig.class }; } protected String[] getServletMappings() { return new String[] { "/*" }; } } 哪里SpringServletConfig是 @Configuration @ComponentScan("com.example.controllers") @EnableWebMvc public class SpringServletConfig { @Bean …

9
访问同一类中另一个对象的私有字段
class Person { private BankAccount account; Person(BankAccount account) { this.account = account; } public Person someMethod(Person person) { //Why accessing private field is possible? BankAccount a = person.account; } } 请忘记设计。我知道OOP指定私有对象是该类的私有对象。我的问题是,为什么将OOP设计为使私有字段具有类级别的访问权限而不具有对象级别的访问权限?
91 java  c++  .net  oop 

9
具有定义超时的Java HTTP客户端请求
我想对云中的许多服务器进行BIT(内置测试)。我需要大超时失败的请求。 我应该如何用Java做到这一点? 尝试以下操作似乎无效。 public class TestNodeAliveness { public static NodeStatus nodeBIT(String elasticIP) throws ClientProtocolException, IOException { HttpClient client = new DefaultHttpClient(); client.getParams().setIntParameter("http.connection.timeout", 1); HttpUriRequest request = new HttpGet("http://192.168.20.43"); HttpResponse response = client.execute(request); System.out.println(response.toString()); return null; } public static void main(String[] args) throws ClientProtocolException, IOException { nodeBIT(""); } } -编辑:澄清正在使用的库- 我正在使用来自Apache的httpclient,这是相关的pom.xml部分 …

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.