Questions tagged «java»

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




4
在JPA和Hibernate中,persist()和merge()之间有什么区别?
Hibernate中的persist()和merge()有什么区别? persist() 可以创建UPDATE&INSERT查询,例如: SessionFactory sef = cfg.buildSessionFactory(); Session session = sef.openSession(); A a=new A(); session.persist(a); a.setName("Mario"); session.flush(); 在这种情况下,将生成查询,如下所示: Hibernate: insert into A (NAME, ID) values (?, ?) Hibernate: update A set NAME=? where ID=? 因此persist()方法可以生成一个插入和一个更新。 现在merge(): SessionFactory sef = cfg.buildSessionFactory(); Session session = sef.openSession(); Singer singer = new Singer(); singer.setName("Luciano …
119 java  hibernate  jpa  orm  entity 

5
Java中的空引用上的静态字段
staticJava中的成员(static字段或static方法)与各自的类关联,而不是与此类的对象关联。以下代码尝试访问null引用上的静态字段。 public class Main { private static final int value = 10; public Main getNull() { return null; } public static void main(String[] args) { Main main=new Main(); System.out.println("value = "+main.getNull().value); } } 虽然main.getNull()返回了null,但它可以工作并显示value = 10。该代码如何工作?
119 java  static 

5
模拟第一个呼叫失败,第二个呼叫成功
我想使用Mockito测试下面的(简化)代码。我不知道如何告诉Mockito第一次失败,然后第二次成功。 for(int i = 1; i < 3; i++) { String ret = myMock.doTheCall(); if("Success".equals(ret)) { log.write("success"); } else if ( i < 3 ) { log.write("failed, but I'll try again. attempt: " + i); } else { throw new FailedThreeTimesException(); } } 我可以通过以下方式设置成功测试: Mockito.when(myMock).doTheCall().thenReturn("Success"); 以及失败测试: Mockito.when(myMock).doTheCall().thenReturn("you failed"); 但是,如何测试一次失败(或两次失败)然后成功,就可以了吗?
119 java  mockito 

4
JPA或JDBC,它们有何不同?
我正在学习Java EE,并且下载了带有glassfish的日食。我看到了一些示例,还阅读了Oracle文档,以全面了解Java EE5。连接到数据库非常简单。我打开了一个动态Web项目,创建了一个会话EJB,我使用EntityManager并通过get方法可以访问存储的数据表。 对于我的下一个项目,我创建了一个简单的类,然后访问一些数据库表。我遇到的第一个问题是PersistenceUnit属性只能由EJB,Servlet等识别,而不是简单的Java类。因此,我无法使用EntityManager方式(或者可以吗?) 我被要求通过“ JDBC”方式进行操作。我遇到的第一个问题是获得与数据库的连接。似乎所有这些都必须经过硬编码。我有一个persistence.xml,可用来轻松配置数据库连接。甚至为数据库设置驱动程序都很容易。JDBC中也没有用于访问表实体的get / set方法。 我如何了解JPA和与JDBC相关的持久性?JPA的目的是什么?为什么会有set / get方法?有人可以阐明这两者的本质吗?没有“行话”的利弊是什么?还请提出一些链接。一个简单的Google搜索JPA和JDBC差异使我进入了一些无法理解的充满“术语”的网站:(
119 java  jpa  jdbc 


7
使用GSON解析JSON时使用枚举
这与我之前在这里问过的上一个问题有关 使用Gson进行JSON解析 我正在尝试解析相同的JSON,但是现在我对类做了一些更改。 { "lower": 20, "upper": 40, "delimiter": " ", "scope": ["${title}"] } 我的课程现在看起来像: public class TruncateElement { private int lower; private int upper; private String delimiter; private List<AttributeScope> scope; // getters and setters } public enum AttributeScope { TITLE("${title}"), DESCRIPTION("${description}"), private String scope; AttributeScope(String scope) { this.scope = …
119 java  json  gson 


5
使用Gson将JSON数组解析为java.util.List
我有一个JsonObject名为"mapping"包含以下内容: { "client": "127.0.0.1", "servers": [ "8.8.8.8", "8.8.4.4", "156.154.70.1", "156.154.71.1" ] } 我知道我可以用以下方法获得阵列"servers": mapping.get("servers").getAsJsonArray() 现在我想将其解析JsonArray为java.util.List... 最简单的方法是什么?
119 java  json  parsing  gson 

4
CompletableFuture | thenApply与thenCompose
我无法理解thenApply()和之间的区别thenCompose()。 那么,有人可以提供有效的用例吗? 从Java文档中: thenApply(Function<? super T,? extends U> fn) 返回一个新值CompletionStage,当此阶段正常完成时,将使用该阶段的结果作为所提供函数的参数来执行该操作。 thenCompose(Function<? super T,? extends CompletionStage<U>> fn) 返回一个新值CompletionStage,当此阶段正常完成时,将以该阶段作为所提供函数的参数来执行此操作。 我得到的thenCompose扩展的CompletionStage 的第二个参数thenApply没有。 有人可以提供一个例子,说明我必须在什么情况下使用thenApply以及何时使用thenCompose?

9
如何使用Jackson JSON处理器序列化Joda DateTime?
如何让Jackson根据一种简单的模式(例如“ dd-MM-yyyy”)序列化我的Joda DateTime对象? 我试过了: @JsonSerialize(using=DateTimeSerializer.class) private final DateTime date; 我也尝试过: ObjectMapper mapper = new ObjectMapper() .getSerializationConfig() .setDateFormat(df); 谢谢!
118 java  json  jodatime  jackson 

17
Android:如何在保持宽高比的同时将图像拉伸到屏幕宽度?
我想下载一个图像(大小不明,但始终大致为正方形)并显示它,以便它在任何屏幕尺寸上都水平填充屏幕,并垂直拉伸以保持图像的纵横比。这是我的代码(无效)。它水平拉伸图像,但不垂直拉伸图像,因此被压缩... ImageView mainImageView = new ImageView(context); mainImageView.setImageBitmap(mainImage); //downloaded from server mainImageView.setScaleType(ScaleType.FIT_XY); //mainImageView.setAdjustViewBounds(true); //with this line enabled, just scales image down addView(mainImageView,new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
118 java  android  layout 

6
在Java 8中,带有2个箭头的lambda是什么意思?
我之前阅读过一些Java 8教程。 现在我遇到以下主题: Java是否支持Currying? 在这里,我看到以下代码: IntFunction<IntUnaryOperator> curriedAdd = a -> b -> a + b; System.out.println(curriedAdd.apply(1).applyAsInt(12)); 我了解此示例包含2个元素,但无法理解其构造: a -> b -> a + b; 根据表达式的左侧,该行应实现以下功能: R apply(int value); 在此之前,我只遇到一个箭头就遇到了lambda。
118 java  lambda  java-8  currying 

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.