我注意到一些项目喜欢将常量存储在他们自己的文件中,即全局和主程序循环中使用的常量可能会混乱主文件,所以他们可能会将它们放在别处,然后引用/导入文件/类.
我知道在编写一个OOP类时,你想要将所有常量保存在类文件的头部,以便可以静态引用它们:
myCar.setColour(Colour.RED);
Run Code Online (Sandbox Code Playgroud)
班级中RED
的颜色常数在哪里Colour
.
什么是好于具有大量的常量的做法,他们应该只是你的主要文件的顶部或以任何方式明智的,有可能是ProgramConstants
类,它是纯静态的,公共和可供阅读?
说我有以下代码:
try {
//Do something with File
} catch (FileNotFoundException e) {
outputInfo("Error in IO Redirection", true);
e.printStackTrace();
System.exit(1);
}
Run Code Online (Sandbox Code Playgroud)
我的程序在此catch位置之后立即退出,是一个单线程(一个主方法)程序,不应该期望从这样的异常中恢复.
我真的应该用System.exit(1);
吗?
说我有以下代码:
try {
Reader reader = new FileReader("/my/file/location");
//Read the file and do stuff
} catch(IOException e) {
e.printStackTrace();
} finally {
reader.close();
}
Run Code Online (Sandbox Code Playgroud)
为什么读者只存在于try
括号内?这是为了阻止Exception
在对象reader
尚未初始化或设置的代码中更早抛出该异常吗?
我应该如何清理该try
子句中存在的对象,还是必须将它们带到外部?
如何在Sybase ASE 15表设置中删除列。
我尝试了一些,但无济于事:
alter table my_table
drop column1, column2
Run Code Online (Sandbox Code Playgroud)
以及查看Sybase文档,该文档没有为我的问题提供解决方案。
数据库'my_db'的'select into'数据库选项未启用。带有数据复制的ALTER TABLE无法完成。设置“选择为”数据库选项并重新运行。
为什么这样做:
if(name.equals("email_stub")) {
if(emailStub == "")
emailStub = results.getString("text");
} else if(name.equals("fax")) {
if(fax == "")
fax = results.getString("text");
}
Run Code Online (Sandbox Code Playgroud)
但是没有第一层括号,它将无法工作,而是无法在逻辑上将if语句分开.即它永远不会超越第一个if语句,并且不会按预期工作.
if(name.equals("email_stub"))
if(emailStub == "")
emailStub = results.getString("text");
else if(name.equals("fax"))
if(fax == "")
fax = results.getString("text");
Run Code Online (Sandbox Code Playgroud)
当我遇到这个问题时,我觉得很奇怪.
java ×4
exception ×2
class ×1
conditional ×1
constants ×1
if-statement ×1
sql ×1
sybase ×1
sybase-ase ×1
t-sql ×1
try-catch ×1