在我的第一次代码审查(前一段时间)中,我被告知在所有switch语句中包含一个default子句是一种好习惯.我最近记得这个建议,但不记得理由是什么.这对我来说听起来很奇怪.
总是包含默认声明是否有合理的理由?
这种语言是依赖的吗?我不记得当时我用的是什么语言 - 也许这适用于某些语言而不适用于其他语言?
如何检查-h
属性是否已传递到shell脚本?我想在用户呼叫时显示帮助消息myscript.sh -h
.
如何使用Python(在Windows上)写入文件并使用Unix行尾字符?
例如,当做:
f = open('file.txt', 'w') f.write('hello\n') f.close()
Python自动用\ r \n替换\n.
我的测试中有一行目前看起来像:
Mockito.verify(mockMyObject).myMethod(Mockito.contains("apple"));
Run Code Online (Sandbox Code Playgroud)
我想修改它以检查参数是否包含"apple"
和"banana"
.我该怎么做?
在Java方法之前,我们有类似的东西:
/**
* Takes a number and returns its square root.
* @param x The value to square.
* @return The square root of the given number.
*/
public float getSqrt(float x) {
...
}
Run Code Online (Sandbox Code Playgroud)
这是否有名称(如Python中的docstrings)?
我的理解是,已检查的例外是那些可以合理地预期从中恢复的人.我不明白为什么这是InstantiationException的情况.如果一个类无法实例化,那么调用者应该做什么?
然后我认为这可能是代码编译时的一个重要考虑因素 - 因此只有在动态指定类时才会发生这种情况.1 在这种情况下,类可能更像是一个参数,但是我们有IllegalArgumentException,它是一个运行时异常.
检查标准异常的理由是什么,哪些不是?
1这是真的吗?
我重构了一个类,并将一些代码从构造函数移动到静态初始化程序.我应该怎么处理构造函数上的javadoc?是否可以将javadoc添加到静态初始化程序?
我想needle
在返回的所有元素中搜索所有带有类的元素jQuery('.haystack')
并尝试过jQuery('.haystack .needle')
,但这似乎并没有找到元素同时包含两个类的情况.有选择器会这样做吗?
我有一个扩展Exception的类,因此必须是Serializable.异常类包含一个不可序列化的字段,因此我考虑将其设置为Transient.我的理解是这样做,意味着如果存储了我的类,则无法恢复该字段.在执行期间,我的异常会被序列化/反序列化吗?(据我所知,我不会将这些内容写入数据库或文件).
我使用字符串作为锁,因此要确保该对象是一个新实例.FindBugs抱怨,因为直接定义字符串通常更有效(使用双引号).我的代码看起来像:
/** A lock for the list of inputs. */
@edu.umd.cs.findbugs.annotations.SuppressWarnings("DM_STRING_CTOR")
//We want a new String object here as this is a lock.
private final Object inputListLock = new String("inputListLock");
Run Code Online (Sandbox Code Playgroud)
我在这里做错了吗?Eclipse FindBugs插件仍然将此报告为一个问题:
Pattern id: DM_STRING_CTOR, type: Dm, category: PERFORMANCE Using the java.lang.String(String) constructor wastes memory because the object so constructed will be functionally indistinguishable from the String passed as a parameter. Just use the argument String directly.
我想得到一个SortedSet的独家尾部集.我能提出的最短的方法是:
private void exclusiveTailSet(SortedSet<String> s, String start) {
System.out.println(s); // [Five, Four, One, Six, Start, Three, Two]
SortedSet<String> t = s.tailSet(start);
System.out.println(t); // [Start, Three, Two]
Iterator<String> i = t.iterator();
i.next();
SortedSet<String> u = t.tailSet(i.next());
System.out.println(u); // [Three, Two]
}
Run Code Online (Sandbox Code Playgroud)
tailSet的javadoc建议从域中的下一个元素开始请求子集(即对于字符串调用s.tailSet(start+"\0");
),但是我实际上正在使用对象,这样创建它就会更多.
什么是创建独有尾部集的有效且干净的通用方法?
我有一个xml文档,其中包含一些带有id的"Item"元素.我想列出唯一的Item ID.但是Item元素不在列表中 - 它们可以位于xml文档中的任何深度 - 例如:
<Node>
<Node>
<Item id="1"/>
<Item id="2"/>
</Node>
<Node>
<Item id="1"/>
<Node>
<Item id="3"/>
</Node>
</Node>
<Item id="2"/>
</Node>
Run Code Online (Sandbox Code Playgroud)
我想输出1,2,3(或类似的表示).如果这可以用单个xpath完成,那就更好了!
我已经看到了兄弟元素列表的示例,但不是一般的xml树结构.我也限制使用xslt 1.0方法.谢谢!
在Java中,我可以返回一个布尔值,其中包含以下内容:
public boolean areBothEven(int i, int j) {
return (i%2 == 0 && j%2 == 0);
}
Run Code Online (Sandbox Code Playgroud)
或者我需要用if包围语句然后适当地返回true和false?