我试图在webapp中加载一个文件,FileNotFound
当我使用时我得到了一个例外FileInputStream
.但是,使用相同的路径,我能够在我这样做时加载文件getResourceAsStream()
.这两种方法之间有什么区别,为什么一种方法有效而另一方方法无效?
在模拟框架中,您可以模拟对象或监视它.这两者之间有什么区别?我应该/何时使用一个而不是另一个?例如,看看mockito,我看到使用间谍和嘲讽做类似的事情,但我不确定两者之间的区别.
在设计API时我可以遵循哪些准则和最佳实践?至少,我知道API应该易于使用且灵活.不幸的是,这些术语可能相当主观,因此我正在寻找一些与良好API设计相关的具体指导原则.
我现在正在上C#课程,我正在努力寻找最好的做事方式.我来自Java背景,因此我只熟悉Java最佳实践; 我是C#新手!
在Java中,如果我有私有财产,我会这样做;
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
Run Code Online (Sandbox Code Playgroud)
在C#中,我看到有很多方法可以做到这一点.
我可以像Java一样做:
private string name;
public void setName(string name) {
this.name = name;
}
public string getName() {
return this.name;
}
Run Code Online (Sandbox Code Playgroud)
或者我可以这样做:
private string name;
public string Name {
get { return name; }
set { name = value; }
}
Run Code Online (Sandbox Code Playgroud)
要么:
public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)
我应该使用哪一个,每种方法涉及哪些警告或细微之处?在创建类时,我遵循我从Java中了解的一般最佳实践(特别是阅读Effective Java).因此,例如,我赞成不变性(仅在必要时提供setter).我很想知道这些实践如何适应C#中提供setter和getter的各种方法; 基本上,我如何将Java世界的最佳实践转换为C#?
编辑
我发布这篇文章是对Jon Skeet答案的评论,但后来很久了:
那么一个非平凡的财产(也许,可能有重要的处理和验证)?我是否仍然可以通过公共属性公开它,但是逻辑封装在get
和 …
按字符数排序的最短代码,将输出Excel列字符串的数字等效值.
例如,A
列为1,B
为2,依此类推.一旦你点击Z
,下一列变为AA
,然后AB
依此类推.
A: 1
B: 2
AD: 30
ABC: 731
WTF: 16074
ROFL: 326676
Run Code Online (Sandbox Code Playgroud)
代码计数包括输入/输出(即完整程序).
为自定义JSP标记定义属性时,是否可以指定默认值?该attribute
指令没有默认值属性.目前我正在做的事情:
<%@ attribute name="myAttr" required="false" type="java.lang.String" %>
<c:if test="${empty myAttr}" >
<c:set var="myAttr" value="defaultValue" />
</c:if>
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
按字符数排序的最短代码将输出Morris数字序列.在莫里斯数列,又称外观数列是数字的顺序启动,如下所示:
1, 11, 21, 1211, 111221, 312211, ...
您可以无限生成序列(即,您不必生成特定的数字).
该程序不需要任何输入(但是接受输入的奖励点,从而提供从任意任意起点或数字开始的选项).至少你的程序必须从1
.
输出至少是预期的顺序:
1
11
21
1211
111221
312211
...
Run Code Online (Sandbox Code Playgroud)
如果你需要额外的功劳,你需要做这样的事情:
$ morris 1
1
11
21
1211
111221
312211
...
$ morris 3
3
13
1113
3113
132113
...
Run Code Online (Sandbox Code Playgroud) 我有一个对象,它将一些数据存储在列表中.实现可能会在以后更改,我不希望将内部实现公开给最终用户.但是,用户必须能够修改和访问此数据集.目前我有这样的事情:
public List<SomeDataType> getData() {
return this.data;
}
public void setData(List<SomeDataType> data) {
this.data = data;
}
Run Code Online (Sandbox Code Playgroud)
这是否意味着我已经允许内部实现细节泄漏?我应该这样做吗?
public Collection<SomeDataType> getData() {
return this.data;
}
public void setData(Collection<SomeDataType> data) {
this.data = new ArrayList<SomeDataType>(data);
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
如何从JSON测试空Javascript对象?
在Javascript中是否有一种简单的方法来检查对象是否没有属性?或者换句话说,检查地图/关联数组是否为空的简单方法?例如,假设您有以下内容:
var nothingHere = {};
var somethingHere = {foo: "bar"};
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来判断哪一个是"空的"?我唯一能想到的是这样的事情:
function isEmpty(map) {
var empty = true;
for(var key in map) {
empty = false;
break;
}
return empty;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法(像本地财产/功能或其他东西)?
我需要使用Javascript从location.href中删除域名.我有类似的链接:http://localhost/App/User/UserOrder.aspx?id=949abc91-a644-4a02-aebf-96da3ac7d8e1&type=MO
我需要没有链接http://localhost
,将来没有真正的域名.
我将在Javascript函数中使用这些trimed链接,所以我想在Javascript中修剪它.
我试过了:window.location.href.split('/')[2];
但我只能获得域名形式.我想摆脱域名.
任何帮助在这里非常感谢!
java ×4
code-golf ×2
javascript ×2
abstraction ×1
api ×1
api-design ×1
c# ×1
collections ×1
excel ×1
file-io ×1
html ×1
is-empty ×1
jquery ×1
jsp ×1
jsp-tags ×1
list ×1
map ×1
mocking ×1
properties ×1
tdd ×1
unit-testing ×1