好吧,这可能是一些黑客攻击,但请忍受我:)背景是我厌倦了一些方法,那些if语句会弄乱整个方法,例如:
public SomeClass DoStuff(string inputStr)
{
SomeClass result =null;
if (IsOpenFilter(inputStr))
{
....
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
所以我在想,如果我可以做这样的事情,那不是很好吗:
public SomeClass DoStuff(string inputStr)
{
Require(IsOpenFilter(inputStr),null);
....
return result;
}
Run Code Online (Sandbox Code Playgroud)
这种情况可能会被某种形式的代码合同所涵盖,如果是这样,请纠正我:)
我们的想法是,如果语句的计算结果为true,则返回null.如果该方法没有返回类型,则只需:Require(IsOpenFilter(inputStr));
所以我想有两个问题,这可以以某种方式完成吗?我对如何通过调用方法进行条件返回感到困惑.
另一个问题是,这是一个好主意吗?monkeypatch这样的语言有点奇怪,但我更喜欢代码读取的方式.如果它可以放在方法上面的属性中,我会更干净:[Require(IsOpenFilter(inputStr))]
我一直在实现我自己的红黑树版本,主要基于维基百科的算法(http://en.wikipedia.org/wiki/Red-black_tree).它在很大程度上相当简洁,但有一部分我想澄清.
从具有2个非叶子(非NULL)子节点的树中删除节点时,它表示将任一方的子节点移动到可删除节点中,并删除该子节点.
基于此,我对哪一方要删除感到困惑.我是否随机选择一侧,我是否在两侧之间交替,或者我是否会在未来的每次删除时都坚持到同一侧?
我想在Java中实现一个B +树,并尝试针对基于磁盘的I/O进行优化.是否有用于从Java访问单个磁盘块的API?或者是否有一个API可以执行类似的面向块的访问,以满足我的目的?
我想在100%Java中创建像Tokyo Cabinet这样的东西.是否有人知道像JavaDB这样的Java数据库在后端使用了什么?
我知道可能有其他语言而不是Java可以做得更好,但我这样做只是为了学习目的.
什么是数据库约束的明确定义?为什么约束对数据库很重要?有哪些类型的约束?
我正在使用带有unicode文本的json,并且我遇到了IE8本机json实现的问题.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
var stringified = JSON.stringify("?????? olé");
alert(stringified);
</script>
Run Code Online (Sandbox Code Playgroud)
使用json2.js或FireFox本机json,alert()字符串与原始字符串相同.另一方面,IE8返回Unicode值而不是原始文本\u0e2a\u0e27\u0e31\u0e2a\u0e14\u0e35 ol\u00e9.是否有一种简单的方法可以使IE的行为与其他行为相同,或者将此字符串转换为应该如何?你会认为这是IE中的一个错误,我认为原生json实现应该是json2.js的相同替代品吗?
编辑:使用上面的代码重写jsfiddle - http://jsfiddle.net/vV4uz/
我想在主窗口中添加滚动条.如何在主窗口中添加滚动条.请帮我.
如果表包含TEXT或BLOB类型的字段,如何获取MySql中记录的大小?
是否可以使用sql语句获取记录或表的大小?
在我的 Java 代码中,我启动了一个新进程,然后获取其输入流以读取它:
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
Run Code Online (Sandbox Code Playgroud)
FindBugs 在这里报告错误:
may fail to close stream
Pattern id: OS_OPEN_STREAM, type: OS, category: BAD_PRACTICE
Run Code Online (Sandbox Code Playgroud)
我必须关闭另一个进程的 InputStream 吗?更重要的是,根据它的 Javadoc, InputStream#close() 什么都不做。那么这是误报,还是应该在完成后真正关闭流程的输入流?