小编Viv*_*ath的帖子

getResourceAsStream()vs FileInputStream

我试图在webapp中加载一个文件,FileNotFound当我使用时我得到了一个例外FileInputStream.但是,使用相同的路径,我能够在我这样做时加载文件getResourceAsStream().这两种方法之间有什么区别,为什么一种方法有效而另一方方法无效?

java file-io web-applications fileinputstream

168
推荐指数
5
解决办法
19万
查看次数

模拟框架中的模拟与间谍

在模拟框架中,您可以模拟对象或监视它.这两者之间有什么区别?我应该/何时使用一个而不是另一个?例如,看看mockito,我看到使用间谍和嘲讽做类似的事情,但我不确定两者之间的区别.

tdd unit-testing mocking

114
推荐指数
5
解决办法
5万
查看次数

设计API的最佳实践和指南

在设计API时我可以遵循哪些准则和最佳实践?至少,我知道API应该易于使用且灵活.不幸的是,这些术语可能相当主观,因此我正在寻找一些与良好API设计相关的具体指导原则.

api api-design

92
推荐指数
4
解决办法
4万
查看次数

吸气剂,制定者和属性最佳实践.Java与C#

我现在正在上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和 …

c# java properties getter-setter

90
推荐指数
6
解决办法
8万
查看次数

Code Golf:相当于Excel列名的数字

挑战

按字符数排序的最短代码,将输出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)

代码计数包括输入/​​输出(即完整程序).

excel code-golf

76
推荐指数
19
解决办法
5万
查看次数

JSP custom-tag属性的默认值

为自定义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)

有没有更好的办法?

java jsp jsp-tags default-value

50
推荐指数
2
解决办法
5万
查看次数

代码高尔夫:莫里斯序列

挑战

按字符数排序的最短代码将输出Morris数字序列.在莫里斯数列,又称外观数列是数字的顺序启动,如下所示:

1, 11, 21, 1211, 111221, 312211, ...

您可以无限生成序列(即,您不必生成特定的数字).

I/O期望

该程序不需要任何输入(但是接受输入的奖励点,从而提供从任意任意起点或数字开始的选项).至少你的程序必须从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)

language-agnostic code-golf rosetta-stone

47
推荐指数
12
解决办法
4834
查看次数

使用List或Collection更好吗?

我有一个对象,它将一些数据存储在列表中.实现可能会在以后更改,我不希望将内部实现公开给最终用户.但是,用户必须能够修改和访问此数据集.目前我有这样的事情:

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)

java collections abstraction list

36
推荐指数
5
解决办法
2万
查看次数

Javascript:检查对象是否没有属性,或者map/associative-array是否为空

可能重复:
如何从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 associative-array map is-empty object-property

33
推荐指数
1
解决办法
5万
查看次数

Javascript - 如何从location.href中删除域

我需要使用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];但我只能获得域名形式.我想摆脱域名.

任何帮助在这里非常感谢!

html javascript jquery

33
推荐指数
4
解决办法
4万
查看次数