Java 22 引入了使用下划线命名未使用变量的功能 ( JEP 456 )。
我有这一行:
go.addActionListener(e -> ui.setVisible(false));
现在开发环境发出警告:
参数“e”从未使用过
建议将其替换e
为_
:
go.addActionListener(_ -> ui.setVisible(false));
值得这样做吗?这是什么意思?对我来说,当你看到它时,你会看几秒钟,但你无法理解它的全部内容......
有一个很好的规则叫做правило 10 - 50 - 500
。这意味着理想情况下:
如果你没有强烈违反这条规则,那么,当然,这没有错。
有jdk
档案这样的东西src.zip
。它有.java
-files,您可以在其中看到 -libraries 中类的实现java
。java
这是当我在 IDE 中单击我的代码中的任何类的名称时 IDE 显示代码的地方。
令我震惊的是,类中有大量代码,一个包中有大量类。有的班级行数接近4000行,一包班级数多到半屏都放不下!
例如,这里java.io.ObjectInputStream
是包java.io
:
这是为什么?它以前sun
和现在是如何解释的oracle
?毕竟这样的项目很难支撑,这样的代码有悖于编写干净代码的原则。我尝试着按照这个原理来创建类10 - 50 - 500
,但是……在这之后,我已经怀疑这个原理的存在了。难道真实项目中真的没有这样的原理,对初学者来说都是虚构的吗?
PS:我真的希望有关于这个主题的引述和事实,而不仅仅是观点。
我需要.jar
在没有安装 jre 的机器上运行我的文件,我找到了一种方法来做到这一点。我执行以下操作:
jar
;jre
(版本 1.8.0_181)的文件夹复制到同一个地方;jre\bin\java.exe -jar MyJar.jar
它有效!但是这种方法虽然有效,但非常不愉快:我的 jar 文件的大小只有 10 KB,而 jre 的大小是 180 MB!
我真的很想减少这个 jre 的大小。是否可以?我听说过类似 的程序launch4j
,但我不确定这是否是我需要的。launch4j
允许您“缝合”到jre
,但恐怕我只会得到180 MB。jar
exe
exe
如果有的话,您需要在 Windows 上运行 jar。
如果有什么不清楚的地方,写在评论中,我会补充问题。
关于launch4j的补充: 我的目标不是打包成exe,而是在上述情况下减少jre的大小。launch4j可以把jre和jar打包成一个exe吗?如果可以,那么 exe 输出的大小将等于大小 (jre) + 大小 (jar)?
还有一个补充: 是否可以只从 jre 中删除一些东西?jre 版本 8 包括对 javafx 的支持,我绝对不需要运行它。是否可以删除负责运行 javafx 应用程序的所有内容?以及如何去做?
另一种选择是删除未使用的库,我和 Java 机器都不会出于技术目的使用这些库。也许这是可能的?这是我正在使用的库列表:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.MenuBar;
import javax.swing.JMenuItem;
import javax.swing.JMenu;