我遇到了一个相当奇怪的问题。事情的本质在于比较两个浮点数的错误。准确地说,这两个数字都是长双打。所以,当我在屏幕上显示这些数字时,两个数字都显示为 A 和 A,但是当比较时,它给出了错误,即 (A == A) = 错误。因此,问题是:在这种情况下该怎么办?
ProstoCoder's questions
假设我正在等待某个条件 A,那么实现它的最佳方法是什么?我有两个选择,但不知道哪个更好。
while(!A);
或者
while(!A)
Thread.onSpinWait();
public class StackOverflow {
public static void main(String[] args) {
method(new Object[]{"Text", 'T', 0});
}
public static void method(Object... args) {
for (Object arg : args) {
System.out.println(arg.getClass().getTypeName());
}
}
}
让我们考虑一下这段代码。其执行结果将是
java.lang.String
java.lang.Character
java.lang.Integer
由此我们得出结论,通过以这种方式传递对象数组,我们将这个数组定义为一组参数。但是,如果我想将给定的数组定义为参数,我怎样才能正确地将它传递给method(Object... args)
?
考虑对象持有对自身的引用的情况。嗯,像这样
public class A {
private A a;
public A() {
a = this;
}
}
在这种情况下,这个类的对象的生命周期是什么?只要有对它们的引用,GC 就不会触及对象。是否遵循这个类的对象至少会保存在内存中,直到我将变量设置a
为空?
在您需要经常创建和补充它的情况下,请告诉我在性能方面最好的集合。同时要保留添加元素的顺序,集合中的元素不多,最多30个。
在DB表中,让表名是example',我添加String(VARCHAR),让它的值为'kk'kk'。问题是我不能在 String 中使用保留字和字符,在这种情况下是 '. 我想冷静地使用任何符号和短语。我需要在表名之间类似于 [] 的东西,即 create table [любой текст включая зарезервированные слова и спец. символы '''?$12](...)
. 在表名 [] 中,它们有助于使用任何字符,但是对于 varchar,它对我不起作用。
再会。我需要一种从特定路径同时下载多个文件到特定目录的方法。基本上,我知道该怎么做。最简单的方法是通过 FileUtils,但我需要监控进度。有没有进步的选择,也许是一些图书馆?我发现了很多很棒的 android 库,但我没有找到任何适用于桌面的库。
实际上,我已经为第 n 天的字体大小而苦恼了。情况如下:我在常规 AnchorPane 中添加了一个常规按钮,并将所有锚点设置为 30。现在,当我调整窗口大小时,按钮的大小会发生变化。但是字体大小没有变化!我已经尝试过以下选项。
- 我将侦听器附加到控件的大小,并根据高度和宽度值更改字体大小。但是这里的问题是,当你减小窗口的大小时,字体已经变成了一定的大小并且不允许 Control'y 减小,因此它本身就变得不可减少。
- 然后我尝试使用 JFXtras 中的 ScalableContentPane,但在 SceneBuilder 中无法制作 GUI 的事实存在差距,因为 为了使该对象正常工作,您需要向其 ContentPane 中添加子项,而不是向其添加子对象,该对象是在这样的代码中获得的
new ScalableContentPane().getContentPane
,并且它还奇怪地改变了它的大小,看起来马马虎虎......
这样的事情......我正在等待您的建议和解决方案,如果有不清楚的地方 - 写,我会澄清。这是代码以防万一...
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class FontSample extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
AnchorPane anchorPane = new AnchorPane();
anchorPane.setPrefSize(900, 700);
Button button = new Button("MrButton");
AnchorPane.setTopAnchor(button, 30.0);
AnchorPane.setRightAnchor(button, 30.0);
AnchorPane.setBottomAnchor(button, 30.0);
AnchorPane.setLeftAnchor(button, 30.0);
anchorPane.getChildren().add(button);
primaryStage.setScene(new Scene(anchorPane));
primaryStage.show();
}
}
下午好。非常有必要执行以下操作:创建一个舞台:未装饰,最大尺寸,即 以便它覆盖除任务栏以外的整个屏幕。仅仅因为最后一个要求,通常的全屏不适合我,其中任务栏也会关闭。请帮忙!
下午好。
public class ButtonAnimation {
public static void playAnimation(MouseEvent event) {
Button button = (Button)event.getSource();
ScaleTransition st = new ScaleTransition(Duration.seconds(0.5), button);
st.toXProperty().setValue(0.8);
st.play();
}
}
这里按钮会减小,但它会在两侧减小,我希望它只在一侧减小,例如在右侧。有没有办法以某种方式做到这一点?
是否还有保留普通文本的选项?只是当你减少它时,它会缩小,尽管还有足够的空间让它不会改变。
下午好。我有一个普通的html页面。它有一个名为 x 的属性。假设页面上有40个这个属性的值。我需要获取页面上这个属性的所有值的数组。做这个的最好方式是什么?
下午好。我需要初始化一个静态最终变量,我在静态初始化块中进行。诀窍是变量本身的初始化可能会抛出异常,我将初始化包装在try {} catch中,但是编译器告诉我变量可能没有初始化,这是正确的,但是我该如何初始化这个那么变量呢?!这是一个示例代码:
public class Example {
public static final Connection connection;
static {
try {
connection = DriverManager.getConnection("jdbc:sqlite:" + PATH); //Вот эта строка может выкинуть исключительную ситуацию
} catch (Exception ignored) {}
}
}
下午好。例如,我们在 java.com.test; 包中有一个类:
银行
package java.com.test;
public class BankAccount {
private int balance;
public class BankAccount(int balance) {
this.balance = balance;
}
protected int getBalance() {
return balance;
}
}
让我们假设一个完整的类层次结构。好吧,粗略地说,其他账户子类型都是从 BankAccount 继承的。在 BankAccount 类的继承者中,必须使用 getBalance() 方法。一切都很好,让我们保护它。一切都会好起来的,但是假设我不希望任何人能够看到除了所有者之外的帐户余额。但不幸的是,对我来说,protected 可以访问同名包中的所有类、继承者和类。那些。我可以简单地创建自己的类,将其放入 java.com.test 包中并访问此方法,并相应地访问余额。如何治疗?
你好!这是代码
ScrollPane sp = new ScrollPane();
sp.setOnMousePressed(event -> {
System.out.println("pressed");
});
sp.setOnMouseDragged(event -> {
System.out.println("dragged");
});
但是由于某种原因它不起作用,当您单击 ScrollPane 时没有任何反应。怎么了?
下午好。例如,如果我不小心以非常快的速度按了两次按钮,那么快以至于第一次按下的处理仍在进行中,然后第二次也从上面飞了出来。我有2个猜测。
- 它们同时被处理,这意味着它们是两个不同的线程。
- 第一个处理将完成其执行,第二个事件的处理将开始。
哪个论述是对的?如果两者都是错误的,请报告正确的一个。
public void action(ActionEvent event) {
for(int i = 0; i < 1000; i++)
System.out.println(i);
}
{
button.addActionListener(action);
}
下午好,直截了当,我的应用程序中有一堆场景,每个场景都是它自己的对象,它自己的层次结构是自然创建的,等等。为了从任何地方访问这些对象,我制作了一个单独的类,它存储了对每个对象的一个引用,并将对该类的一个对象的引用传递给每个场景。这样的事情是,当我搬到一个新的场景时,前一个对我来说已经没用了,我希望他们不要占用内存空间,因为。再加上所有的领域,他们可以占据相当多的空间。然后我想到了finalize()。如果在进行场景更改时,在被更改的场景上调用此方法会有所帮助吗?
大家下午好,从匿名类访问局部变量的工作方式变得有趣了。假设我有这个代码
public void addListener() {
String s = "Hello World";
this.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.out.println(s);
}
});
}
并让这个方法在继承自JButton的类中定义。我们在这里当你点击这个按钮时总会看到消息Hello World!但我想知道它将如何引用这个 Hello World!。假设它对引用 s 的同一对象有一些不可见的引用,即 关于 Hello World!,但我不确定我的假设,所以我请你回答这个问题,谢谢。
下午好。我读到 Controller 的构造函数在 initialize(...) 方法之前被调用。但我不知道如何将参数传递给构造函数。我知道的唯一方法是:
FXMLLoader loader = new FXMLLoader(...);
TestController testController = new TestController(some paremetrs);
loader.setController(controller);
loader.load();
但由于某些原因我不喜欢它,也许有一种方法可以更正确、更漂亮地做到这一点?
你好。在方法中创建的对象会发生什么。这是一个例子:
public void example() {
Integer i = new Integer(4);
}
这里我们迫不及待地创建了一个Integer类型的对象,ok,但是现在我们已经完成了这个方法,这个对象之后会发生什么?它将简单地从堆栈中删除,如果没有比这个更多的链接到它,那么从堆中删除?
public class Variables {
public static Variables variables = new Variables();
private ArrayList<String> arrList = new ArrayList<>();
private Variables() {}
public ArrayList getArrList() {
return arrList;
}
}
public class Human {
private String name;
public Human(String name) {
this.name = name;
Variables.variables.getArrList().add(name);
}
public void setName(String name) {this.name = name;}
}
public class Main() {
public static void main(String[] args) {
Human human = new Human("Josh");
//Теперь у нас переменная стринг "Josh" хранится и в коллекции и в поле объекта human и нам чтобы удалить этого Джоша надо удалить этот объект из коллекции Variables.variables.getArrList().remove(0); и присвоить Null human.setName(null);
}
}