使用switch
语句与使用if
30个unsigned
枚举的语句的最佳实践是什么,其中大约10个具有预期的操作(目前是相同的操作).需要考虑性能和空间,但并不重要.我已经抽象了代码片段,所以不要因为命名惯例而讨厌我.
switch
声明:
// numError is an error enumeration type, with 0 being the non-error case
// fire_special_event() is a stub method for the shared processing
switch (numError)
{
case ERROR_01 : // intentional fall-through
case ERROR_07 : // intentional fall-through
case ERROR_0A : // intentional fall-through
case ERROR_10 : // intentional fall-through
case ERROR_15 : // intentional fall-through
case ERROR_16 : // intentional fall-through
case ERROR_20 :
{
fire_special_event();
}
break;
default:
{ …
Run Code Online (Sandbox Code Playgroud) 几个Linq.Enumerable函数需要一个IEqualityComparer<T>
.是否有一个方便的包装类适应delegate(T,T)=>bool
实现IEqualityComparer<T>
?编写一个很容易(如果你忽略了定义正确的哈希码的问题),但我想知道是否有开箱即用的解决方案.
具体来说,我想对Dictionary
s 进行集合操作,仅使用Keys来定义成员资格(同时根据不同的规则保留值).
我在一个相当大的J2EE项目上使用EJB 3,默认情况下,Netbeans将实体bean的持久提供程序设置为TopLink.可以选择将提供程序更改为以下之一,甚至可以添加新的持久性库:
您更喜欢使用哪种持久性提供程序?使用其他提供商有什么好处?
虽然TopLink似乎很好,但我找不到很多关于如何控制缓存等的好文档.任何帮助都会非常感激.
我的服务器上安装了给定的证书.该证书具有有效日期,并且在Windows证书MMC管理单元中似乎完全有效.
但是,当我尝试读取证书时,为了在HttpRequest中使用它,我找不到它.这是使用的代码:
X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly); X509Certificate2Collection col =
store.Certificates.Find(X509FindType.FindBySerialNumber, "xxx", true);
Run Code Online (Sandbox Code Playgroud)
xxx
是序列号; 该参数true
意味着"只有效证书".返回的集合为空.
奇怪的是,如果我通过false
,表示可以接受无效证书,则该集合包含一个元素 - 具有指定序列号的证书.
总之:证书似乎有效,但该Find
方法将其视为无效!为什么?
我经常通过在我正在处理的类中创建一个内部类来重构代码 - 当我完成后,我将整个事物移动到一个新的类文件中.这使得重构代码变得非常容易,因为A)我只处理单个文件,而B)我不会创建新文件,直到我对名称/名称有很好的了解(有时它最终会不止一个班).
有没有什么方法Eclipse可以帮助我完成最后的行动?我应该能够告诉它我想要该类的包,它可以从类名和包中的目录中找出文件名.
这似乎是一个微不足道的重构,而且非常明显,但我无法弄清楚击键/手势/无论如何实现它.我尝试过拖动,菜单,上下文菜单以及浏览键盘快捷键.
谁知道这个?
[edit]这些已经是这个文件中的"顶级"类,而不是内部类,而"Move"似乎不想为我创建一个新类.这是我通常做的艰难的方式 - 涉及外出,创建一个空课,回来和移动.我想一步完成整个过程.
我有一个结合了Java和PHP的最佳和最差的系统.我正在尝试将曾经用PHP编写的组件迁移到Java One中.
有没有人对如何解析Java中的PHP序列化数据结构有一些提示?通过序列化我的意思是来自php的序列化函数的输出.
我已经看到有些人使用EXISTS (SELECT 1 FROM ...)
而不是EXISTS (SELECT id FROM ...)
优化 - 而不是查找并返回值,SQL Server可以简单地返回它给出的文字.
是SELECT(1)
总是快?从表中选择一个值是否需要选择文字会避免的工作?
为什么这个javascript会返回108而不是2008?它得到的日期和月份正确但不是一年?
myDate = new Date();
year = myDate.getYear();
Run Code Online (Sandbox Code Playgroud)
年= 108?
java ×3
.net ×1
apache ×1
c# ×1
c++ ×1
certificate ×1
date ×1
delegates ×1
eclipse ×1
if-statement ×1
java-ee ×1
javascript ×1
jpa ×1
linq ×1
maintenance ×1
mocking ×1
optimization ×1
orm ×1
php ×1
python ×1
refactoring ×1
sql ×1
sql-server ×1
ssl ×1
x509 ×1