GPS应用程序的距离

可能重复: 如何在Android上通过GPS跟踪距离? 我设计了一个GPS应用程序,它很好地说明了我的位置。 但现在我想要包含更多function。 我将如何在那里制作一个半径? 周边地区为5或6公里! 我怎么能提到那个地方和我的地方之间的距离?

设置JVM选项以避免错误org.springframework.cglib.core.ReflectUtils $ 1 非法reflection访问

我使用Spring Boot 2.0.0.RC1,JDK 9.0.4,IntelliJ IDEA 2017.3.4 Ultimate,Gradle 4.5.1。 Spring Boot RC1版本(严格来说,Spring Framework 5.0.3.RELEASE)有一个已知的问题: https ://jira.spring.io/browse/SPR-15859,我也在这里看到它https://github.com/ dsyer /弹簧引导java的9#创建-A-弹簧引导应用 Spring开发人员建议 您可以通过在命令行中添加-illegal-access = deny来关闭它(Java 9中的默认值是允许的)。 我选择菜单帮助\编辑自定义VM选项… ,然后在文件的最后一行添加新选项。 然后我发现了错误 > Unrecognized option: -illegal-access=deny > > Error: Could not create the Java Virtual Machine. > > Error: A fatal exception has occurred. Program will exit. Full console log /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/java -XX:TieredStopAtLevel=1 […]

如何在Java中按下鼠标时执行mouseEntered

我只想在鼠标当前按下时执行mouseEntered,基本上这样: @Override public void mouseEntered(MouseEvent e) { if(e.mouseDown()){ //Do stuff } } 我可以这样做,还是我需要一个鼠标运动监听器或什么? 谢谢! 编辑:抱歉应该让这个更清楚,但我需要按下鼠标才能进入组件之前,就像按住鼠标并将鼠标hover在组件上一样可以激活监听器

基于其中一个字段对对象列表进行排序

你好stackoverflow社区! 我是这些论坛的新手,也是java和android编程的新手 – 这恰好是我的问题的对象 – 所以很抱歉任何错误! 我的问题是排序。 我正在寻找一种方法来根据我选择的字段对对象进行排序(不是基于第一个字段进行排序,而是根据比较器链接进行排序等)。 我相信我找到了解决问题的方法: https://stackoverflow.com/a/5113108/1549672 但我实际上遇到了麻烦。 我怀疑由于缺乏java经验,我可能会遗漏一些东西,所以欢迎任何帮助! 这是我正在尝试的: 作为我的class级 – public class ItemLocation { String title; int id; } 作为我的职能 – public void sort(final String field, List itemLocationList) { Collections.sort(itemLocationList, new Comparator() { @Override public int compare(ItemLocation o1, ItemLocation o2) { if(field.equals(“title”)) { return o1.title.compareTo(o2.title); } else if(field.equals(“id”)) { return […]

为什么不排序(Comparator :: reverseOrder)有效?

以下Stream表达式完美无缺: Stream s = Stream.of(“yellow”,”blue”, “white”); s.sorted(Comparator.reverseOrder()) .forEach(System.out::print);` //yellowwhiteblue 为什么没有与方法引用相同的编译? s.sorted(Comparator::reverseOrder).forEach(System.out::print); Comparator类型不定义此处适用的reverseOrder(String,String)

案例不敏感的三元搜索树

我一直在使用三元搜索树 ,作为实现自动完成下拉combobox的数据结构。 这意味着,当用户键入“fo”时,将显示下拉combobox foo食品足球 问题是,我目前使用的三元搜索树区分大小写。 我的实施如下。 它已被现实世界用于大约1 ++年。 因此,我认为它非常可靠。 我的三元搜索树代码 但是,我正在寻找一个不区分大小写的三元搜索树,这意味着,当我键入“fo”时,下拉combobox将显示给我 食物fooTBall 以下是TST的一些关键接口,我希望新案例insentive TST也可能有类似的接口。 /** * Stores value in the TernarySearchTree. The value may be retrieved using key. * @param key A string that indexes the object to be stored. * @param value The object to be stored in the tree. */ public void put(String […]

createTempFile是线程安全的吗?

我正在使用Java 6。 调用createTempFile(类java.io.File)的两个线程是否可能获得相同的临时文件?

用于java图形的multithreading

我有一个java应用程序,它可以传输原始数据并相应地绘制实时图。 这是通过调用我编写的使用Graphics对象的类的方法来处理的。 我在重写的paintComponent方法中实现了算法,以生成最新数据中的所有图。 我在我的类中有其他方法来更新paintComponent方法中使用的变量来绘制图形。 在我的主类中,我定期在计时器事件处理程序中更新我的图形。 在事件处理程序中,我从我的图形类中调用更新某些变量的方法,进行一些计算,然后调用repaint()(这显然是调用paintComponent方法的正确方法)。 我的问题是,我在paintComponent方法中使用的算法可能需要(相对)长的时间来完成,具体取决于我的图的数量和分辨率。 (我还没有遇到这个问题,但我现在正试图解决它)。 当然我不希望所有这些图形占用我的应用程序的所有处理时间,所以我想知道是否可以在单独的线程中执行“paintComponent”。 如果我在main中创建一个子类来运行一个单独的线程并简单地调用我描述的图形方法会发生什么? 会自动使所有这些方法(包括paintComponent)在新线程中执行吗? 或者我是否必须修改我的图表类本身才能使用? 理想情况下,我想避免修改我的图表类,因为我已经将它设计为在NetBeans GUI构建器中作为JPanel工作,我想避免破坏该function。

为什么java RandomAccessFile比FileOutputStream慢得多?

只要我能理解java api,使用“rw”打开RandomAccessFile就不会在底层存储设备上同步写入错误的单字节。 与“rws”或“rwd”不同。 为什么它与“rw”的无缓冲FileOutputStream几乎相同“速度”,“rws”/“rwd”慢10倍以上? 以下简单的代码显示了这一点,我无法得到任何合理的解释。 任何线索? import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.io.RandomAccessFile; public class StreamTest { public static void main(String[] args) throws Exception { OutputStream os; RandomAccessFile raf; int size = 10000; File file = new File(“test.log”); long a=System.currentTimeMillis(); os = new FileOutputStream(file); for(int i=0;i<size;i++){ os.write(("1").getBytes()); } os.close(); long b=System.currentTimeMillis(); System.out.println("writing direct "+(ba)); […]

Java流API将lambda表达式存储为变量

这个标题对我来说听起来很愚蠢,但必须至少有一些聪明的方法才能达到这样的效果,我不知道如何解释它。 我需要使用sorted in stream API对数组进行排序。 到目前为止,这是我的流: Arrays.stream(sequence.split(” “)) .mapToInt(Integer::parseInt) .boxed() .sorted((a, b) -> a.compareTo(b)) .forEach(a -> System.out.print(a + ” “)); 现在我有两种不同的过程 – 升序和降序,我需要使用的排序在用户输入中指定。 所以我想要做的就是切换2个案例:“升序”和“降序”以及分别存储lambda表达式的变量: switch(command) { case “ascending”: var = a.compareTo(b); case “descending”: var = b.compareTo(a); } 然后我的排序看起来像: .sorted((a, b) -> var) 我在参加的python课程中得到了这个想法。 在那里可以将对象存储在变量中,从而使变量“可执行”。 我意识到这个lambda不是一个对象,而是一个表达式,但我要问的是有什么聪明的方法可以达到这样的结果,或者我应该只有 if(var) 和每个排序顺序的两个不同的流。