Questions tagged «java»

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

3
自定义排序方式是A排在a之前,B排在b之前
我有一个这样的颜色列表: 粉色,蓝色,红色,蓝色,灰色,绿色,紫色,黑色...等 List<String> listOfColors = Arrays.asList("Pink", "Blue", "Red", "blue", "Grey", "green", "purple", "black"); 有一些中间操作,例如过滤一些水果色,现在剩下过滤结果要按顺序排序了: 蓝色,黑色,蓝色,灰色,绿色,粉红色,紫色,红色 我努力了 : List<String> collect = listOfColors.stream().sorted(String::compareToIgnoreCase) .collect(Collectors.toList()); 它不能按预期方式工作。 输出如下: 黑色,蓝色,蓝色,绿色,灰色,粉红色,紫色,红色 我想要以下内容: 蓝色,黑色,蓝色,灰色,绿色,粉红色,紫色,红色

5
如何在Java中查找一年的总周数?
我正在做一个项目。我应该在那里找到一年的总周数。我尝试使用以下代码,但得到的答案是错误的:2020年有53周,但是这段代码却有52周。 这段代码在哪里出错了? package com.hib.mapping; import java.time.LocalDate; import java.time.temporal.WeekFields; import java.util.Calendar; import java.util.GregorianCalendar; import org.joda.time.DateTime; public class TestWeek { public static void main(String args[]) { System.out.println(getWeeks()); } public static int getWeeks() { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, 2020); cal.set(Calendar.MONTH, Calendar.JANUARY); cal.set(Calendar.DAY_OF_MONTH, 1); GregorianCalendar gregorianCalendar = new GregorianCalendar(); int weekDay = cal.get(Calendar.DAY_OF_WEEK) …

3
使用httpurlconnection multipart / form-data上传arraylist
我需要Arraylist在不使用任何库的情况下将图像上传到服务器。我正在Asynctask上传单个图像,并且在httpurlconnection multipart / form-data的帮助下可以完美地工作。现在我需要更改代码以通过使用来上传任何类型的多个文件,Arraylist<String>但是我的问题是现有代码FileinputStream不支持arraylist,而且我不知道该怎么用,而不是Fileinputstream将arraylist上载到服务器并且我不知道想要为此使用任何库。 public class multipart_test extends AsyncTask<Void,Void,String> { Context context; String Images; public static final String TAG = "###Image Uploading###"; public multipart_test(Context context,String Upload_Images) { this.context = context; this.Images = Upload_Images; } @Override protected String doInBackground(Void... params) { BufferedReader reader; String WebPath = null; try { String lineEnd …

2
如何为特定的詹金斯工作设置`killSoftly`?
我的Jenkins构建在构建和构建后步骤之间挂起。 控制台输出显示有6分钟的等待时间(但我已经看到等待时间长达一小时): 10:53:26 BUILD FAILED in 1m 7s 10:53:26 4 actionable tasks: 4 executed 10:53:26 Build step 'Invoke Gradle script' changed build result to FAILURE 10:53:26 Build step 'Invoke Gradle script' marked build as failure 11:09:29 [CucumberReport] Using Cucumber Reports version 4.9.0 我发现这和这个问题有类似的问题,他们说的解决方法是设置-DSoftKillWaitSeconds=0在jenkins.xml。 但是,我需要一种只为特定作业设置选项的方法,而不会弄乱全局Jenkins设置(我不想弄乱其他项目)。 编辑: 当我手动中止作业时,在[CucumberReport]步骤之前,仍然会生成Cucumber报告。 我还选中了“构建环境”选项中的“ 如果构建卡住了,则中止构建”复选框,其中“超时”策略设置为No Activity(“超时秒数= 2”)。 …

1
为什么在使用不相关的接口类型调用时,编译器为什么选择带有类类型参数的通用方法?
考虑以下两个类和接口: public class Class1 {} public class Class2 {} public interface Interface1 {} 为什么第二个调用mandatory使用Class2,如果getInterface1和Interface1没有关系来调用重载方法Class2? public class Test { public static void main(String[] args) { Class1 class1 = getClass1(); Interface1 interface1 = getInterface1(); mandatory(getClass1()); // prints "T is not class2" mandatory(getInterface1()); // prints "T is class2" mandatory(class1); // prints "T is …

1
Java-8中的方法参考和泛型
我面临方法引用与泛型类型结合使用的问题。 我们有需要调用重载方法的代码,但是由于错误而失败: 无法解析值m1() 我简化了我的问题,以明确问题出在哪里。 以下代码失败: public class Test { void test() { // Getting error here setValue(C1::m1, Integer.ONE); } <E extends I1, T> void setValue(BiConsumer<E, T> cons, T value) { } } interface I1 { } class C1 implements I1 { void m1(Integer value) { } void m1(int value) { …
11 java  generics  lambda  java-8 

2
截击请求重试策略不考虑超时
我已将1500设置为initialTimeoutMs在DefaultRetryPolicy,如下所示,但它不考虑超时: request.setRetryPolicy(new DefaultRetryPolicy(1500 , DefaultRetryPolicy.DEFAULT_MAX_RETRIES , DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 我断开了设备上的WiFi的连接以测试其超时,然后在 Logcat中: 2019-12-16 14:28:15.892 I/MyClass: request sent 2019-12-16 14:28:35.930 I/MyClass: request caught onError 花了超过20秒的时间,而我希望在1.5秒后捕获onResponse或onError !!!

2
清理Java8中的数据列表
为了清理数据列表,我创建了一种方法,该方法接受数据列表和要执行的清理操作列表。 public <T> List<T> cleanData(List<T> data, List<Function<T, T>> cleanOps) { List<T>dataNew=data.stream().map((str) -> { T cleanData = str; for(Function<T,T> function:cleanOps) { cleanData=function.apply(cleanData); } return cleanData; }).collect(Collectors.toList()); return dataNew; } 这里的问题是,当Collectors.toList()返回新列表时,我们将再次创建整个列表。我们可以在不使用额外空间的情况下达到相同的结果吗? 下面是调用代码: public void processData() { List<Function<String, String>> cleanOps = new ArrayList<>(); cleanOps.add(String::toLowerCase); cleanOps.add(str -> str.replaceAll(" ", "")); List<String> data = new …

3
Mockito嘲笑本地决赛,但在詹金斯失败
我已经为静态方法编写了一些单元测试。静态方法仅接受一个参数。参数的类型是最终类。在代码方面: public class Utility { public static Optional<String> getName(Customer customer) { // method's body. } } public final class Customer { // class definition } 因此,对于Utility该类,我创建了一个测试类,UtilityTests在其中为该方法编写了测试getName。单元测试框架为TestNG,而使用的模拟库为Mockito。因此,典型的测试具有以下结构: public class UtilityTests { @Test public void getNameTest() { // Arrange Customer customerMock = Mockito.mock(Customer.class); Mockito.when(...).thenReturn(...); // Act Optional<String> name = Utility.getName(customerMock); // Assert …


4
八进制数(以8为底)有什么用?
Java提供了以2、8、10和16为基数编写数字文字的方法。 我想知道为什么包括基数8,例如int x = 0123;? 我认为可能存在类似于十六进制的一个字节的容量为FF + 1的事实,依此类推。
11 java  literals  octal 

4
使用任何文件追加器进行Log4j的每日轮换和每月保留
是否可以使用任何log4j附加程序写入具有特定轮换时间和保留限制的日志。 目标是: 每天有一个日志文件;在午夜为新日志创建一个新文件 保留日志文件并在一定时间后自动将其删除;因此,删除早于X天(例如30天)的日志文件 似乎可以旋转,但使用log4j不可能限制保留时间 log4j版本为1.2。

3
Spring Boot 2嵌入tomcat 9.0.26无法加载jks文件流关闭
我尝试在嵌入了tomcat 9.0.26的Spring Boot 2.2.0上使用SSL,但是tomcat无法关闭JKS文件流。 这是应用程序属性: server.port=443 server.ssl.key-store-type=JKS server.ssl.key-store=C:\\Keystore\\mykey.jks server.ssl.key-store-password=cccc server.ssl.key-alias=*.mydomain.com 例外: org.springframework.boot.web.server.WebServerException:无法在org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:215)〜[spring-boot-2.2.0上启动嵌入式Tomcat服务器。 ..BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT]位于org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer(ServletWebServerApplicationContext.java:297)〜[spring-boot-2.2.0。 BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT],位于org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:163)〜[spring-boot-2.2.0.BUILD -SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT]位于org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553)〜[spring-context-5.2.0.RELEASE。jar!/:5.2.0.RELEASE]位于org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/ :2.2.0.BUILD-SNAPSHOT]在org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD- SNAPSHOT],网址为org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT]。 boot.SpringApplication.run(SpringApplication.java:315)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT]在org.springframework.boot.SpringApplication.run(SpringApplication .java:1226)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0。BUILD-SNAPSHOT],位于欧盟org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT]。 soluma.app.SolumaTdvApplication.main(SolumaTdvApplication.java:34)〜[classes!/:0.0.1-SNAPSHOT] at java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)〜[na:na]在java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[na:na]在java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜 na:na]在java.base / java.lang.reflect.Method.invoke(Method.java:567)〜[na:na]在org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) 〜[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0。org.springframework.boot.loader.Launcher.launch(Launcher.java:87)的[1-SNAPSHOT]〜org.springframework.boot.loader中的[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]。 Launcher.launch(Launcher.java:51)〜[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]在org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)〜[SolumaTDV -0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]由以下原因引起:java.lang.IllegalArgumentException:standardService.connector.startFailed at org.apache.catalina.core.StandardService.addConnector(StandardService.java:231)〜[ tomcat-embed-core-9.0.26.jar!/:9.0.26],位于org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:278)〜[spring-boot-2.2.0 ..BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT]位于org.springframework.boot。web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:197)〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] ...省略了18个常见框架创建人:org.apache.catalina.LifecycleException:协议处理程序启动失败,发生在org.apache.catalina.connector.Connector.startInternal(Connector.java:1008)〜[tomcat-embed-core-9.0.26.jar!/:9.0 .26]在org.apache.catalina.core上的org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] .StandardService.addConnector(StandardService.java:227)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] ...省略了20个常见框架导致原因:java.lang.IllegalArgumentException:流在以下位置关闭org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:99)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26]在org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71)〜[tomcat-embed-core -9.0.26.jar!/:9.0.26]在org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:218)〜[tomcat-embed-core-9.0.26.jar!/: 9.0.26],位于org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1124)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26],位于org.apache。 tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1210)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26]在org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java :585)〜[tomcat-embed-core-9.0.26.jar!/:9.0.26]在org.apache.catalina.connector.Connector.startInternal(Connector.java:1005)〜[tomcat-embed-core- 9.0.26.jar!/:9.0。[26] ... ...省略了22个共同的框架导致原因:java.io.IOException:流在java.base / …

3
龙目岛(Lombok)Getter / Setter vs Java 14记录
我喜欢Lombok项目,但如今,我正在阅读并尝试Java 14的一些新功能。 在新功能内部,有record关键字,该关键字允许创建具有以下内置功能的类:构造函数,私有最终字段,访问器,equals / hashCode,getter和toString方法。 现在我的问题是:最好依靠Lombok的功能,还是我们应该开始使用记录功能: 最好使用这个: record Person (String name, String surname) {} 或者那个: @AllArgsConstructor @ToString @EqualsAndHashCode public class GetterSetterExample { @Getter private int name; @Getter private int surname; } 两种方法的优缺点是什么?

2
java 14 nullpointerexception没有详细的消息
Java 14具有许多新功能。其中之一是在NullPointerException中显示详细消息。我安装了Java 14,并尝试在类下编译并运行,但未得到任何详细消息。我有什么想念的吗?请帮忙。 ~/code/demo/temp$ java -version openjdk version "14" 2020-03-17 OpenJDK Runtime Environment AdoptOpenJDK (build 14+36) Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.19.0, JRE 14 Mac OS X amd64-64-Bit Compressed References 20200313_47 (JIT enabled, AOT enabled) OpenJ9 - 0133ba037 OMR - 1c04e0ef9 JCL - a73be60649 based on jdk-14+36) ~/code/demo/temp$ cat Hello.java …
10 java  openj9  jdk14 

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.