Firestore – 在本地合并两个查询

由于Firestore中没有逻辑OR运算符,因此我尝试在本地合并2个单独的查询。 现在我想知道如何保持结果的正确顺序。 当我独立运行2个查询时,我无法特定地查询结果(至少不是我使用orderBy方法从Firestore获取结果的顺序)。 我的想法是将第二个查询放在第一个查询的onSuccessListener中。 这是一个表现明智的坏主意吗? public void loadNotes(View v) { collectionRef.whereLessThan(“priority”, 2) .orderBy(“priority”) .get() .addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(QuerySnapshot queryDocumentSnapshots) { for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) { Note note = documentSnapshot.toObject(Note.class); //adding the results to a List } collectionRef.whereGreaterThan(“priority”, 2) .orderBy(“priority”) .get() .addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(QuerySnapshot queryDocumentSnapshots) { for (QueryDocumentSnapshot […]

null!= object和object之间有什么区别!= null

可能重复: 哪种方式更好“null!= object”或“object!= null”? 为什么在C#中经常会看到“null!= variable”而不是“variable!= null”? ‘…!= null’或’null!= …’最佳表现? 请指导我。 null!= object和object之间有什么区别!= null 相同的“”.equal(“something”)和“something”.equals(“”) 哪一个有利于加工。

Java中的音乐循环

美好的一天! 我正在做一个游戏,我希望它有背景声音。 我为它创建了一个类,我在我的主要部分调用它。 我的代码如下: import sun.audio.*; import java.io.*; public class Sound { public void music() { AudioStream backgroundMusic; AudioData musicData; AudioPlayer musicPlayer = AudioPlayer.player; ContinuousAudioDataStream loop = null; try { backgroundMusic = new AudioStream(new FileInputStream(“chickendance.wav”)); musicData = backgroundMusic.getData(); loop = new ContinuousAudioDataStream(musicData); musicPlayer.start(loop); } catch (IOException error) { System.out.println(error); } } } 这是我称之为的主要课程。 public class […]

Java的交换机是如何工作的?

Java的switch语句如何在幕后工作? 它如何比较正在使用的变量的值与案例部分中给出的值? 它是使用==或.equals() ,还是完全不同的东西? 我主要对前1.7版本感兴趣。

如何在java中的applet中写入文件?

由于Applet在浏览器中以沙盒模式运行,因此我使用AccessController.doPrivileged来写入文件。 它在Eclipse中运行时写入文件,但在浏览器中访问applet时不写入。 我错过了什么? 这是代码: public class HelloWorld extends Applet { public void paint(Graphics g) { AccessController.doPrivileged(new PrivilegedAction() { public Boolean run() { try { System.out.println(System.getProperty(“user.home”)); String userHome = System.getProperty(“user.home”); FileWriter fw = new FileWriter(userHome + File.separator + “test” + File.separator + “area.txt”); fw.write(“The area is 20m”); fw.flush(); fw.close(); } catch (IOException ioe) { System.err.println(ioe); } […]

在两个JavaFX控制器之间传递参数

我想单击一列并将单元格索引发送到新阶段。 但是我无法将我的参数( int clickIndex )传递给另一个控制器EditClientController 。 我已经尝试了一切,但它仍然无法正常工作。 MainController package controller; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.input.MouseEvent; import javafx.scene.text.Text; import javafx.stage.Stage; import javafx.util.Callback; import model.Table; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.net.URL; import java.util.ResourceBundle; public […]

为什么使用double的for循环无法终止

我正在查看旧的考试题目(目前是大学的第一年)。我想知道是否有人可以更彻底地解释为什么以下for循环不会在它应该结束时结束。 为什么会这样? 我知道它因为四舍五入错误而跳过100.0,但为什么呢? for(double i = 0.0; i != 100; i = i +0.1){ System.out.println(i); }

如何使用文本文件中的数据集在Java中绘制折线图?

我编写了一个Java GUI程序,它打开一个文本文件并读取左侧面板中的数据。 现在我想在右侧面板上显示从同一文件中读取的数据图表。 我使用JFileChooser打开文件并读取数据并将其显示在文本区域。 我希望使用二维XY图显示从文件读取的数据。 应使用数据文件中指定的标签信息标记图表的轴。 X轴上的值应从指定的x轴起始值开始,间隔以x轴间隔值确定的速率递增。 Y轴上的值需要根据数据本身确定。 绘制在图表上的每个点应使用单行连接。 我使用了几种方法,但都没有用。 我已经尝试将文本文件中的每一行作为数组读取并使用数组作为数据集,但它也不能正常工作。 请帮我从文本文件中的数据绘制图表。 任何帮助,将不胜感激。 谢谢。 PS图表应仅使用AWT / Swing库绘制。 该文件的数据如下: Title: Effect of Age on Ability Xlabel: Age Ylabel: Ability start: 0 interval: 15 0, 3, 4.2, 7, 5.1, 10, 3.2 以下是我到目前为止编写的代码: import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; import java.awt.List; import java.awt.TextArea; import java.awt.event.ActionEvent; import […]

Java Swing:如何从组件中删除匿名ActionListener

我创建了一个带有匿名ActionListeners的JButtons数组,在某些条件下我想删除所有ActionListeners ,但.removeActionListeners方法需要一个ActionListener作为参数。 我将如何删除动作侦听器? for (int i=0; i < button.length; i++){ button[i] = new JButton(); button[i].addActionListener(listener.new ButtonListener()); }

Java wait()不会被notify()唤醒

你好我已经调试了一整天的代码了,但我看不出哪里可能出错了。 我在主线程上使用SerialPortEventListener,在工作线程中我有一个与服务器通信的客户端套接字。 由于在这个工作线程return ,我仍然需要在主线程中完成一些总结工作,我想创建一个在主线程中等待的“伪线程”,直到从侦听器onEvent方法通知它。 但是这种伪线似乎永远等待着。 我检查了锁定的线程pseudoThread ,它们应该在Runnable和Listener类中具有相同的对象id。 显示“PseudoThread waiting”,但是从未显示PseudoThread清醒。 控制台输出显示:PseudoThread等待.. .. false通知伪线程。 PS如果我在Main类中使用public final Object lock = new Object();创建一个锁public final Object lock = new Object(); 并用main.pseudoThread替换所有main.pseudoThread ,我得到java.lang.IllegalMonitorStateException。 private class Pseudo implements Runnable{ Main main; public Pseudo(Main main) { this.main = main; } @Override public void run() { synchronized(main.pseudoThread){ try { System.out.println(“PseudoThread waiting”); main.pseudoThread.wait(); System.out.println(“PseudoThread awake”); […]