使用单个语句像
import java.awt.*;
而不是导入一堆单独的类
import java.awt.Panel;
import java.awt.Graphics;
import java.awt.Canvas;
...
在import语句中使用通配符有什么问题?
唯一的问题是,它会使你的本地名称空间混乱。例如,假设你正在编写一个Swing应用程序,因此需要它java.awt.Event
,并且还与该公司的日历系统(具有)交互com.mycompany.calendar.Event
。如果你同时使用通配符方法导入这两种情况,则会发生以下三种情况之一:
java.awt.Event
和之间存在直接的命名冲突com.mycompany.calendar.Event
,因此甚至无法编译。.*
),但这是错误的,并且你很难弄清楚为什么代码声称类型是错误的。com.mycompany.calendar.Event
,但是当他们以后添加代码时,你先前有效的代码突然停止编译。显式列出所有导入的优点是,我可以一目了然地告诉你要使用哪个类,这使阅读代码变得更加容易。如果你只是快速地一次性完成,则没有任何明显的错误,但是以后的维护人员将感谢你的清晰说明。
问题内容: 在Java中,是否可以编写一个switch语句,其中每种情况都包含多个值?例如(尽管以下代码显然不起作用): 我认为这可以在Objective C中完成,Java中是否有类似的东西?或者我应该只使用,语句呢? 问题答案: Java没有这种东西。为什么不执行以下操作?
问题内容: 我需要创建一个使用12个参数的存储过程,并使用此参数的不同组合来过滤查询。所有12个参数都不是强制性的,好像我传递3或5或12个参数取决于用户输入的搜索输入。 我可以使用动态SQL查询或“ Case where”语句创建2种方法。这些查询的示例如下: 动态查询 DECLARE @condition VARCHAR(MAX)=’‘ Declare @var1 varchar(10) De
问题内容: 我正在使用准备好的语句来执行mysql数据库查询。我想实现基于各种关键字的搜索功能。 为此,我需要使用关键字,这一点我知道很多。而且我之前也使用过预处理语句,但是我不知道如何使用它,因为从以下代码中,我将在哪里添加? 我可以直接在或类似的东西中使用它吗?我在网络上看到很多帖子,但在任何地方都没有好的答案。 问题答案: 你需要在值本身中而不是在准备好的语句SQL字符串中进行设置。 因此,
我一直在玩流,然后我注意到当我执行以下操作时,它不会在控制台中产生输出: 我认为这是因为是一个非终止流方法,应该使用而不是来终止流并生成结果: 然而,是否有一种方法可以‘提前’终止流,使用一个自定义的终止方法(函数接口),它除了终止流之外什么都不做?..有没有一个适当的方法来利用Java现有的东西来做到这一点? 我知道我可以这样做: 但那感觉很浪费。
问题内容: 建议不要中使用。 可以分享原因,以便下次避免这样做吗? 问题答案: 因为它将很多东西放到你的命名空间中(可能会遮盖以前导入的其他对象,你对此一无所知)。 因为你不完全知道要导入的内容,而且不容易找到从哪个模块导入的特定内容(可读性)。 因为你不能使用像静态检测代码中的错误之类的出色工具。
问题内容: 我想知道Java(或更普遍的是:在编程中)的一些情况,在布尔表达式中首选使用无条件()而不是有条件版本()。 我知道它们是如何工作的,但是我想不出使用单曲值得的情况。 问题答案: 我发现在现实生活中的情况下,表达的双方都真的很便宜,所以它剃掉了一两纳秒避免分支,使用无条件代替。(不过,这些都是极高性能的数学实用程序;我几乎永远不会在其他代码中使用它,并且如果没有详尽的基准测试来证明它更