Questions tagged «java»

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

4
如何在gradle引导测试中关闭关闭钩子的输出?
您可以从https://start.spring.io/starter.zip?type=gradle-project&language=java&bootVersion=2.2.5.RELEASE&baseDir=demo&groupId=com.example&artifactId=demo&name生成从start.spring.io到此问题的项目= demo&d​​escription = Demo%20project%20for%20Spring%20Boot&packageName = com.example.demo&packaging = jar&javaVersion = 1.8&dependencies = h2,data-jpa,web 我有一个用gradle构建的多模块springBoot应用程序,其中有很多SpringBoot集成测试。当我进行构建时,最终会从SpringBoot关闭到控制台获得一些输出,如下所示。如何关闭此输出? ± |master ↑1 {1} S:3 U:10 ✗| → ./gradlew build > Task :core:test 2020-02-01 11:20:33.529 INFO 24114 --- [extShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2020-02-01 11:20:33.531 INFO 24114 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 …

1
Android Q:范围存储中的SQLite数据库
在Android Q中引入了新的范围存储功能,该功能表示: 默认情况下,面向Android 10(API级别29)及更高版本的应用会获得对外部存储(或范围存储)的范围内访问权限。此类应用程序只能访问外部存储上特定于应用程序的目录以及该应用程序创建的特定媒体类型。 我有我的应用程序在外部存储上创建SQLite数据库,这样,当应用程序卸载数据库时,该数据库仍然有效,以后可以用作恢复功能,也可以在Android设备之外使用(例如在PC中) 如何使用Android Q达到相同的效果?更准确地说,如果数据库存储在外部公共目录中,如何使用标准读取此数据库SQLiteOpenHelper?

5
如何从地图生成具有不同值的地图(并使用BinaryOperator使用右键)?
我有一张地图Map<K, V>,我的目标是删除重复的值并Map<K, V>再次输出相同的结构。如果发现重复的值,则必须k从两个键(k1和k1)中选择一个保存这些值的键(),因此,假定BinaryOperator<K>提供k了k1并k2可用。 输入和输出示例: // Input Map<Integer, String> map = new HashMap<>(); map.put(1, "apple"); map.put(5, "apple"); map.put(4, "orange"); map.put(3, "apple"); map.put(2, "orange"); // Output: {5=apple, 4=orange} // the key is the largest possible 用我的尝试Stream::collect(Supplier, BiConsumer, BiConsumer)是位非常笨拙,包含可变操作,比如Map::put和Map::remove我想避免: // // the key is the largest integer possible (following the example above) final …

2
Java 8:Class.getName()会减慢字符串连接链的速度
最近,我遇到了有关字符串串联的问题。该基准总结如下: @OutputTimeUnit(TimeUnit.NANOSECONDS) public class BrokenConcatenationBenchmark { @Benchmark public String slow(Data data) { final Class<? extends Data> clazz = data.clazz; return "class " + clazz.getName(); } @Benchmark public String fast(Data data) { final Class<? extends Data> clazz = data.clazz; final String clazzName = clazz.getName(); return "class " + clazzName; } @State(Scope.Thread) …

3
JDK 11+和Javadoc
Exit code: 1 - javadoc: error - The code being documented uses packages in the unnamed module, but the packages defined in https://docs.oracle.com/en/java/javase/11/docs/api/ are in named modules. 有没有人能够使javadoc工作而不必将源版本更改为1.8(如其他论坛中所建议)?我使用的是JDK v11.0.5,问题仍然存在(JDK 12+也是如此)。 编辑:此错误源于maven,由maven-javadoc-plugin抛出。即使进行了<source>8</source>配置,我也无法使它适用于JDK 11+ 。

2
Java:手动展开的循环仍比原始循环快。为什么?
考虑下面两个长度为2的代码片段: boolean isOK(int i) { for (int j = 0; j < filters.length; ++j) { if (!filters[j].isOK(i)) { return false; } } return true; } 和 boolean isOK(int i) { return filters[0].isOK(i) && filters[1].isOK(i); } 我认为,经过充分的预热后,这两块琴的性能应该相似。 我已经使用JMH微基准测试框架对此进行了检查,如此处和此处所述,并观察到第二个片段的运行速度提高了10%以上。 问题:为什么Java没有使用基本循环展开技术优化我的第一个代码段? 特别是,我想了解以下内容: 我可以很容易地产生一个代码,为2个滤波器的情况下最佳的,仍然可以在过滤器另一个号码的情况下工作(想象一个简单的建造者): return (filters.length) == 2 ? new FilterChain2(filters) : new FilterChain1(filters)。JITC可以这样做吗?如果不能,为什么? …

3
开放式简历人脸识别不准确
在我的应用程序中,我尝试使用Open CV在特定图像上进行人脸识别,这里我首先训练一个图像,然后在训练该图像后,如果我在该图像上进行人脸识别,则它成功地识别出该训练过的人脸。但是,当我转向同一个人的另一张照片时,识别不起作用。它仅适用于经过训练的图像,所以我的问题是如何纠正它? 更新:我要做的是用户应该从存储中选择一个人的图像,然后在训练了所选图像之后,我想从存储中获取与我训练过的图像相匹配的所有图像。 这是我的活动课: public class MainActivity extends AppCompatActivity { private Mat rgba,gray; private CascadeClassifier classifier; private MatOfRect faces; private ArrayList<Mat> images; private ArrayList<String> imagesLabels; private Storage local; ImageView mimage; Button prev,next; ArrayList<Integer> imgs; private int label[] = new int[1]; private double predict[] = new double[1]; Integer pos = 0; …

1
Jasper报告组件​​无法在JavaFX Swing节点中正确呈现
为了在JavaFX 11中创建Jasper报告,我使用了动态报告。我正在将报告加载到Swing Node中,但是只有当我单击堆栈窗格区域时,才会显示Jasper报告,并且只有将鼠标悬停在所有这些组件上时,所有其他组件才可见。组件和报告内容不会立即加载,而不是在鼠标悬停时显示,并且在“堆栈窗格”上滚动时显示报告。 因为这是Java 8中的错误,似乎已经解决,但是在Java 11中,我也遇到了同样的问题。 更新资料 由于我没有得到任何回应,并且按照kleopatra的建议,我创建了最少的可复制代码。请调查一下。 JavaFxJasperReportsDemo.java package demo; import java.util.ArrayList; import java.util.List; import javax.swing.SwingUtilities; import javafx.application.Application; import javafx.application.Platform; import javafx.embed.swing.SwingNode; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import javafx.stage.WindowEvent; import net.sf.dynamicreports.jasper.builder.JasperReportBuilder; import net.sf.dynamicreports.report.builder.DynamicReports; import net.sf.dynamicreports.report.builder.column.Columns; import …

1
运算符“ +”不能应用于对象和字符串
如下代码: void someMethod(Object value) { String suffix = getSuffix(); if (suffix != null) value += suffix; [...] } 在JDK 8(使用-source 1.6)中编译时没有错误,但是在JDK 6中失败并显示以下错误消息: Operator '+' cannot be applied to java.lang.Object and java.lang.String 虽然我确实了解错误的根源,但为什么要使用JDK 8进行编译?这在任何地方都有记录吗?
12 java  java-8  javac  java-6 

4
JPA继承@EntityGraph包括子类的可选关联
给定以下域模型,我想加载所有Answers,包括其Values和其各自的子孩子,并将其放入中AnswerDTO,然后转换为JSON。我有一个可行的解决方案,但它遇到了N + 1问题,我想通过使用ad-hoc摆脱它@EntityGraph。所有关联都已配置LAZY。 @Query("SELECT a FROM Answer a") @EntityGraph(attributePaths = {"value"}) public List<Answer> findAll(); 使用的ad-hoc @EntityGraph对Repository方法我可以确保值是预取的,以防止N + 1上的Answer->Value相关性。虽然我的结果还不错,但是还有一个N + 1问题,因为延迟加载s 的selected关联MCValue。 使用这个 @EntityGraph(attributePaths = {"value.selected"}) 失败,因为该selected字段当然只是某些Value实体的一部分: Unable to locate Attribute with the the given name [selected] on this ManagedType [x.model.Value]; 我如何告诉JPA仅selected在值是a的情况下才尝试获取关联MCValue?我需要类似的东西optionalAttributePaths。

1
如何记录Java Record参数?
应该如何记录Java Record参数?我指的是最终成为构造函数参数的参数,类字段。 我试过了: /** * @param name the name of the animal * @param age the age of the animal */ public record Animal(String name, int age) { } 但是IntelliJ IDEA将@params 标记为错误。我找不到有关此方法工作原理的在线示例。我找到的最接近的讨论是https://bugs.openjdk.java.net/browse/JDK-8225055。 我在JDK中发现了一些单元 测试,似乎暗示这应该可行。也许这是一个IDE错误? 我正在使用OpenJDK 14 + 36-1461,IDEA 2020.1。 为了防止万一,我针对IDEA 提交了错误报告。

3
int上的余数运算符会导致java.util.Objects.requireNonNull?
我正在尝试通过某种内部方法获得尽可能多的性能。 Java代码是: List<DirectoryTaxonomyWriter> writers = Lists.newArrayList(); private final int taxos = 4; [...] @Override public int getParent(final int globalOrdinal) throws IOException { final int bin = globalOrdinal % this.taxos; final int ordinalInBin = globalOrdinal / this.taxos; return this.writers.get(bin).getParent(ordinalInBin) * this.taxos + bin; //global parent } 在我的探查器中,我看到其中有1%的CPU支出java.util.Objects.requireNonNull,但我什至没有这样说。在检查字节码时,我看到了: public getParent(I)I throws java/io/IOException …

4
Java 13文本块*没有*换行符
具有"""定界符的Java 13多行文本块功能已广为人知。 但是,我经常需要没有嵌入式换行符的整个段落。 换句话说,以下代码段: String paragraph = """ aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii """" System.out.println(paragraph); 如您所料,将产生以下内容: aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii ...这通常非常有用。但是,就我而言,对于特别大的段落,我需要它来产生此内容: aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii (...并稍后处理文本流。) 有没有办法为三引号功能建立“ no-newline”参数?

2
Java指派执行程序由于某种原因失败时,停止执行程序服务
我需要某种服务,该服务将在1秒的间隔内同时运行1分钟1分钟。 如果其中一项任务失败,则我想停止该服务,并停止运行该服务的每个任务,并带有某种指示错误的指示器,否则,如果在一分钟后一切正常,则该服务将停止并指示所有指示器均正常运行。 例如,我有2个功能: Runnable task1 = ()->{ int num = Math.rand(1,100); if (num < 5){ throw new Exception("something went wrong with this task,terminate"); } } Runnable task2 = ()->{ int num = Math.rand(1,100) return num < 50; } ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(2); task1schedule = scheduledExecutorService.scheduleAtFixedRate(task1, 1, 60, TimeUnit.SECONDS); task2schedule = …

2
如何理解此Java 8 Stream collect()方法?
我试图将一个int数组转换为List,并且采取了使用Java 8 Stream的陌生路线,并提出了这个建议。 Arrays.stream(arr).boxed().collect(Collectors.toList()); 我仍然很难完全理解这条线, 为什么Collectors.toList()在这种情况下返回一个ArrayList<Integer>实现List接口?为什么不LinkedList<Integer>符合List接口的通用类呢?我找不到这事,除了简短提的ArrayList 这里,在API说明部分。 左边的 意思是什么?显然是通用返回类型(在我的代码中)。而且我认为是该方法的泛型类型参数,但是如何指定它们呢?我查看了Collector界面文档,但无法吸收它。 Stream.collect()RArrayList<Integer><R, A>

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.