有一些模式用于检查方法的参数是否已null赋值.
首先是经典之作.它在自制代码中很常见,并且很明显可以理解.
public void method1(String arg) {
if (arg == null) {
throw new NullPointerException("arg");
}
}
Run Code Online (Sandbox Code Playgroud)
其次,您可以使用现有框架.该代码看起来更好一点,因为它只占用一行.缺点是它可能会调用另一个方法,这可能会使代码运行得慢一些,具体取决于编译器.
public void method2(String arg) {
Assert.notNull(arg, "arg");
}
Run Code Online (Sandbox Code Playgroud)
第三,你可以尝试调用一个没有副作用的方法.这可能看起来很奇怪,但它比上述版本的令牌更少.
public void method3(String arg) {
arg.getClass();
}
Run Code Online (Sandbox Code Playgroud)
我没有看到广泛使用的第三种模式,感觉就像我自己发明了它一样.我喜欢它的简洁性,因为编译器很有可能完全优化它或将其转换为单个机器指令.我还用行号信息编译我的代码,所以如果NullPointerException抛出一个,我可以追溯到确切的变量,因为我每行只有一个这样的检查.
您更喜欢哪种支票,为什么?
我有一个名为"对象"的变量.如果可见,我如何查看JavaScript?
我试过了!object.getAttribute("dislay","none")......但这不起作用.
有人可以帮帮我吗?
谢谢!
我有std::map<int, std::pair<short, float> >,我需要short在这张地图中找到最小值.我该怎么boost::bind用std::min_element()?
boost::lambda?
我正在寻找关于如何创建新的maven原型的指南,其中涉及使用参数来创建目录和文件名,其中参数用作文件名中的前缀和由原型创建的包结构/目录的一部分.
我能找到的就是如何制作非常简单的项目非常简单.
我是递归的新手,并试图理解这段代码.我正在攻读考试,这是我从斯坦福大学的CIS教育图书馆(来自Nick Parlante的Binary Trees)找到的"评论家".
我理解这个概念,但是当我们在圈内进行递归时,一切都在吹!请帮我.谢谢.
countTrees()解决方案(C/C++)
/*
For the key values 1...numKeys, how many structurally unique
binary search trees are possible that store those keys.
Strategy: consider that each value could be the root.
Recursively find the size of the left and right subtrees.
*/
int countTrees(int numKeys) {
if (numKeys <=1) {
return(1);
}
// there will be one value at the root, with whatever remains
// on the left and right each forming their own subtrees.
// Iterate through …Run Code Online (Sandbox Code Playgroud) 我在我的centos服务器上使用memcached,我的项目很大,并且有超过1MB的对象,我需要保存到memcached,好吧,我不能!因为max_item_size是1MB,无论如何编辑它?
谢谢
我正在使用SUBSTRING函数来检索邮件正文的"摘录":
SELECT m.id, m.thread_id, m.user_id, SUBSTRING(m.body, 1, 100) AS body, m.sent_at
FROM message m;
Run Code Online (Sandbox Code Playgroud)
我想要做的是在子串的末尾添加3个点,但前提是源字符串超过我的上限(100个字符),即子串必须切断字符串.如果源字符串少于100个字符,则无需在末尾添加任何点.
我使用PHP作为我的脚本语言.
为什么我可以$在Javascript中分配函数,但不是#或^?
当用户单击a上的单元格时JTable,如何计算单击单元格的行和列?我如何在一个JLabel?中显示这些信息?
我想在git中恢复一个特定的提交.不幸的是,我们的组织仍然使用CVS作为标准,所以当我提交回CVS时,多个git提交被归为一个.在这种情况下,我很想挑出原始的git提交,但这是不可能的.
是否有类似的方法git add --patch允许我有选择地编辑差异来决定提交的哪些部分还原?
java ×3
c++ ×2
javascript ×2
archetypes ×1
boost-bind ×1
boost-lambda ×1
c ×1
coding-style ×1
css ×1
for-loop ×1
git ×1
git-cvs ×1
grammar ×1
html ×1
jtable ×1
listener ×1
maven ×1
memcached ×1
mysql ×1
optimization ×1
php ×1
recursion ×1
sql ×1
swing ×1