Questions tagged «java»

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

8
TreeMap按值排序
我想编写一个比较器,使我可以按值而不是默认自然顺序对TreeMap进行排序。 我尝试过类似的方法,但无法找出问题所在: import java.util.*; class treeMap { public static void main(String[] args) { System.out.println("the main"); byValue cmp = new byValue(); Map<String, Integer> map = new TreeMap<String, Integer>(cmp); map.put("de",10); map.put("ab", 20); map.put("a",5); for (Map.Entry<String,Integer> pair: map.entrySet()) { System.out.println(pair.getKey()+":"+pair.getValue()); } } } class byValue implements Comparator<Map.Entry<String,Integer>> { public int compare(Map.Entry<String,Integer> e1, Map.Entry<String,Integer> …
137 java 


9
&&(AND)和|| (OR)在IF语句中
我有以下代码: if(!partialHits.get(req_nr).containsKey(z) || partialHits.get(req_nr).get(z) < tmpmap.get(z)){ partialHits.get(z).put(z, tmpmap.get(z)); } partialHitsHashMap 在哪里。如果第一个陈述为真会怎样? Java还会检查第二条语句吗?因为为了使第一条语句为真,所以HashMap不应包含给定的键,因此如果选中了第二条语句,我将得到NullPointerException。 简单来说,如果我们有以下代码 if(a && b) if(a || b) Java将在第一种情况下检查b是否a为false,a在第二种情况下是否为true?
137 java  if-statement 

11
用活动组内的另一个片段替换一个片段
我在小组活动中有一个片段,我想用另一个片段替换它: FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction(); SectionDescriptionFragment bdf = new SectionDescriptionFragment(); ft.replace(R.id.book_description_fragment, bdf); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft.addToBackStack(null); ft.commit(); 在不使用活动组的情况下作为单独的项目完成时,它工作正常,当控件进入getview()时,每件事在log cat中工作都很好,但是没有视图可见,甚至没有任何异常出现,我希望将书详细信息片段由部分详细信息片段代替。 图书详细信息片段的XML具有id book_description_fragment,而节描述片段的xml具有id section_description_fragment。 上面的代码位于项目的onClick方法中,我希望当用户在水平滚动视图中点击项目时,片段会发生变化。

5
使用Mockito时,嘲笑和间谍有什么区别?
使用Mockito间谍的用例是什么? 在我看来,每个间谍用例都可以使用callRealMethod进行模拟处理。 我可以看到的一个区别是,如果您希望大多数方法调用都是真实的,则可以节省一些代码行以使用模拟与间谍。是这样还是我错过了更大的前景?
137 java  testing  mocking  mockito 


6
Java中的可选orElse可选
我一直在使用Java 8中的新Optional类型,并且遇到了似乎不受功能支持的常见操作:“ orElseOptional” 考虑以下模式: Optional<Result> resultFromServiceA = serviceA(args); if (resultFromServiceA.isPresent) return result; else { Optional<Result> resultFromServiceB = serviceB(args); if (resultFromServiceB.isPresent) return resultFromServiceB; else return serviceC(args); } 这种模式有多种形式,但是归结为希望在一个可选函数上使用一个“ orElse”,该函数需要一个函数来生成一个新的可选变量,只有当当前的不存在该函数时才调用它。 它的实现如下所示: public Optional<T> orElse(Supplier<Optional<? extends T>> otherSupplier) { return value != null ? this : other.get(); } 我很好奇是否有这种方法不存在的原因,是否以一种意想不到的方式使用Optional,以及人们想出了什么其他方式来处理这种情况。 我应该说,我认为涉及定制实用程序类/方法的解决方案并不优雅,因为使用我的代码的人不一定知道它们的存在。 另外,如果有人知道,这种方法是否会包含在JDK 9中,我可以在哪里提出这种方法?对我来说,这似乎是对API的明显忽略。
137 java  lambda  java-8  optional  java-9 

13
如何检查数组是否为空/空?
我有一个int没有元素的数组,我正在尝试检查它是否为空。 例如,为什么下面代码中的if语句的条件永远不会为真? int[] k = new int[3]; if (k == null) { System.out.println(k.length); }
137 java  arrays 

11
Spring MVC-如何在Rest Controller中将简单字符串作为JSON返回
我的问题实质上是对该问题的后续行动。 @RestController public class TestController { @RequestMapping("/getString") public String getString() { return "Hello World"; } } 在上面,Spring会将“ Hello World”添加到响应正文中。如何返回String作为JSON响应?我知道我可以添加引号,但这感觉更像是黑客。 请提供任何示例以帮助解释此概念。 注意:我不希望直接将其写到HTTP响应正文中,我想以JSON格式返回字符串(我将控制器与RestyGWT一起使用,这要求响应必须为有效JSON格式)。
137 java  json  spring  rest  spring-mvc 

16
静态导入方法的一个好用例是什么?
刚刚收到评论,我静态导入该方法不是一个好主意。静态导入是DA类中的一种方法,该类主要具有静态方法。因此,在业务逻辑中间,我有一个da活动,显然似乎属于当前类: import static some.package.DA.*; class BusinessObject { void someMethod() { .... save(this); } } 审阅者并不希望我更改代码,也没有,但是我确实同意他的观点。不能静态导入的原因之一是方法的定义位置令人困惑,它不在当前类中,也不在任何超类中,因此花了太多时间来确定其定义(基于Web的审阅系统没有可点击的像IDE一样的链接:-)我真的不认为这很重要,静态导入仍然很新,很快我们都会习惯于定位它们。 但是,我同意的另一个原因是,不合格的方法调用似乎属于当前对象,并且不应跳转上下文。但是,如果确实存在,那么扩展该超类将是有意义的。 所以,当它是有意义的静态导入的方法呢?你什么时候做的?您是否喜欢不合格的电话的外观? 编辑:流行的观点似乎是静态导入方法,如果没有人将它们混淆为当前类的方法。例如,来自java.lang.Math和java.awt.Color的方法。但是,如果abs和getAlpha不模糊,我看不出为什么readEmployee是。与许多编程选择一样,我认为这也是个人喜好。 多谢您的回覆,我想解决这个问题。

14
在N秒内对M个请求进行节流方法调用
我需要一个组件/类,该组件/类可以在N秒内将某些方法的执行限制为最多M个调用(或ms或nanos,无所谓)。 换句话说,我需要确保我的方法在N秒的滑动窗口中执行不超过M次。 如果您不知道现有课程,请随时发布解决方案/想法,以了解如何实现。
137 java  throttling 


6
在Java流中,peek真的仅用于调试吗?
我正在阅读有关Java流的信息,并在不断学习中发现新事物。我发现的新peek()功能之一就是功能。我偷看的几乎所有内容都说应将其用于调试Streams。 如果我有一个Stream,其中每个帐户都有一个用户名,密码字段以及一个login()和LoggedIn()方法,该怎么办? 我也有 Consumer<Account> login = account -> account.login(); 和 Predicate<Account> loggedIn = account -> account.loggedIn(); 为什么会这么糟糕? List<Account> accounts; //assume it's been setup List<Account> loggedInAccount = accounts.stream() .peek(login) .filter(loggedIn) .collect(Collectors.toList()); 现在,据我所知,这确实可以实现预期的目的。它; 取得帐户清单 尝试登录每个帐户 过滤掉所有未登录的帐户 将已登录的帐户收集到新列表中 这样做的缺点是什么?有什么我不应该继续的理由吗?最后,如果不是这种解决方案,那又如何呢? 它的原始版本使用.filter()方法,如下所示; .filter(account -> { account.login(); return account.loggedIn(); })
137 java  java-8  java-stream  peek 

30
IllegalArgumentException:此NavController未知导航目标xxx
当我尝试从一个Fragment导航到另一个Fragment时,新的Android Navigation Architecture组件出现问题,出现这个奇怪的错误: java.lang.IllegalArgumentException: navigation destination XXX is unknown to this NavController 除此特定导航外,其他所有导航都可以正常工作。 我使用findNavController()Fragment的功能来访问NavController。 任何帮助将不胜感激。

20
JPA getSingleResult()或为null
我有一个在不存在时insertOrUpdate插入Entity或在存在时更新的方法。要启用此功能,我必须执行findByIdAndForeignKey,如果返回的话则返回nullinsert,然后更新。问题是如何检查它是否存在?所以我尝试了getSingleResult。但是,如果 public Profile findByUserNameAndPropertyName(String userName, String propertyName) { String namedQuery = Profile.class.getSimpleName() + ".findByUserNameAndPropertyName"; Query query = entityManager.createNamedQuery(namedQuery); query.setParameter("name", userName); query.setParameter("propName", propertyName); Object result = query.getSingleResult(); if (result == null) return null; return (Profile) result; } 但是getSingleResult抛出一个Exception。 谢谢
136 java  jpa 

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.