我正在研究一个涉及我使用HashSet我制作的课程的项目,我将其命名Test.我这样定义了HashSet如下:
HashSet<Test> t = new HashSet<Test>();
t.add(new Test("asdf", 1));
t.add(new Test("hello", 2));
t.add(new Test("hello", 3));
Run Code Online (Sandbox Code Playgroud)
我试过用
t.contains(new Test("asdf", 1));
Run Code Online (Sandbox Code Playgroud)
但它回来了false.但是,当我使用HashSet<Character>它似乎工作正常.我试图重写先前的equals声明,但它没有奏效.我试着equals独自离开,但我还是得到了false.我需要知道我做错了什么?
另外,我没有编辑哈希函数,我只更改了Test.equals(Object o).这是一个简单的项目,因为java文档声明它使用o.equals(this),我想我不会这样做.
我在工厂中有一个switch语句,它根据传入的枚举值返回一个命令.类似于:
public ICommand Create(EnumType enumType)
{
switch (enumType)
{
case(enumType.Val1):
return new SomeCommand();
case(enumType.Val2):
return new SomeCommand();
case(enumType.Val3):
return new SomeCommand();
default:
throw new ArgumentOutOfRangeException("Unknown enumType" + enumType);
}
}
Run Code Online (Sandbox Code Playgroud)
我目前为枚举中的每个值都有一个switch case.我对每种情况都进行了单元测试.如何对默认情况下的错误进行单元测试?显然,目前我无法传递一个未知的EnumType,但是谁说这将来不会改变.无论如何我是否可以纯粹为了单元测试而扩展或模拟EnumType?
iPhone相机工具栏为灰色且略有渐变.我相信我可以通过设置工具栏的tintColor和/或半透明来实现相同的外观.
知道我怎么能让我的工具栏看起来像相机一样吗?
这不太对劲......太黑了:
UIToolbar *tb = [[UIToolbar alloc] initWithFrame:frame];
tb.tintColor = [UIColor grayColor];
Run Code Online (Sandbox Code Playgroud) 我只是将构造函数链接起来的概念,但我无法弄清楚如何将这两个特定的构造函数链接在一起,所以如果有人可以帮助我,我将不胜感激.
谢谢!
构造函数
// default constructor
// purpose: initialize data members to zero
// Parameters: none
// returns: none
public Line()
{
startPoint.xCoord = 0;
startPoint.yCoord = 0;
endPoint.xCoord = 0;
endPoint.yCoord = 0;
}
// parameterized constructor
// purpose: initialize data members to p1 and p2
// Parameters: Point objects p1 and p2
// returns: none
public Line(Point p1, Point p2)
{
startPoint = p1;
endPoint = p2;
}
Run Code Online (Sandbox Code Playgroud) 我.js在我的页面中添加了一个简单的文件,其中添加了一些非常普通的常见任务类型的函数Object和Array原型.
通过反复试验,我发现添加任何函数Object.prototype,无论它的名称或它的作用导致jQuery中的Javascript错误:
罪魁祸首?
Object.prototype.foo = function() {
/*do nothing and break jQuery*/
};
Run Code Online (Sandbox Code Playgroud)
我jquery-1.3.2.js在attr:function {}声明中得到第1056行的错误:
/*Object doesn't support this property or method*/
name = name.replace(/-([a-z])/ig, function(all, letter) {
return letter.toUpperCase();
});
Run Code Online (Sandbox Code Playgroud)
显然G.replace是未定义的.
虽然很明显有些东西我只是没有用原型制作来解决问题,但我很难弄清楚它是什么.
要清楚,我不是在寻找一种解决方法,我已经处理好了......我正在寻找的是为什么要回答?.为什么要添加一个函数来Object.prototype打破这段代码呢?
我有以下代码(这是一些半sudo代码,可能无法编译):
class FooBar {
public:
void a();
void b();
boost::shared_ptr<boost::thread> m_thread;
std::string m_test;
};
void FooBar::a() {
m_test = "Foo bar"
m_thread = shared_ptr<thread>(new thread(bind(&FooBar::b, this)));
}
void FooBar::b() {
cout << m_test;
}
Run Code Online (Sandbox Code Playgroud)
代码cout << test不会产生任何输出,因为m_test它""代替"Foo bar".为什么是这样?我认为this作为第二个参数传递bind将允许我访问同一个实例b()- 我不正确吗?
next,prev,nextAll和prevAll方法非常有用,但如果您尝试查找的元素不在同一个父元素中,则不会.我想做的是这样的:
<div>
<span id="click">Hello</span>
</div>
<div>
<p class="find">World></p>
</div>
Run Code Online (Sandbox Code Playgroud)
当click按下具有id的span时,我想将下一个元素与类匹配find,在这种情况下,该类不是被点击元素的兄弟,所以next()或nextAll()不起作用.
我正在使用JörnZaefferer的优秀jquery.validation插件,我想知道是否有一种简单的方法可以在验证之前自动修剪表单元素?
以下是验证电子邮件地址的表格的简化但有效的示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"
type="text/javascript"></script>
<script src="http://ajax.microsoft.com/ajax/jquery.validate/1.5.5/jquery.validate.js"
type="text/javascript"></script>
<script type="text/javascript">
$().ready(function() {
$("#commentForm").validate({
rules: {
email: {
required: true,
email: true
}
}
});
});
</script>
</head>
<body>
<form class="cmxform" id="commentForm" method="get" action="">
<label for="cemail">E-Mail:</label><input id="cemail" name="email"
class="required email" />
<input class="submit" type="submit" value="Submit"/>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
问题是一些用户感到困惑,因为他们意外地在他们的电子邮件地址中输入了一些空格,例如"test@test.com".表单将不会提交并显示错误消息:"请输入有效的电子邮件地址.".非技术用户不知道如何发现空白,可能只是退出网站而不是试图弄清楚他们做错了什么.
无论如何,我希望我可以jQuery.trim(value)在验证之前链接" ",这样就删除了空白并且验证错误永远不会发生?
我可以使用addMethod来构建我自己的电子邮件验证功能.但我确信有一个更优雅的解决方案?
我的矩阵有一个行组 (QuestionText) 和一个列组 (AnswerText)。
它看起来像这样:
【答案】 [问题文本] [答案计数]
我的数据如下所示:
QuestionText AnswerText AnswerCount 问题 1 是 2 问题 1 否 1 问题 2 是 3 问题 2 第 4 题
呈现如下:
是 否 问题 1 2 1 问题 2 3 4
我想做的是按是或否排序。请注意,问题和答案都只是示例,他们的答案可能是旗帜颜色和红色、白色、蓝色......
这可能吗?我看到有人说“这很难”。我没问题,我只需要知道怎么做。 http://social.msdn.microsoft.com/Forums/en/sqlreportingservices/thread/b4a242ce-e2de-463e-8732-a9f8abe493e4
感谢您的关注!
c# ×3
jquery ×3
.net ×1
boost ×1
c++ ×1
class ×1
cocoa-touch ×1
collections ×1
constructor ×1
hashset ×1
iphone ×1
java ×1
javascript ×1
matrix ×1
mocking ×1
moq ×1
next ×1
objective-c ×1
prototype ×1
prototyping ×1
sorting ×1
struct ×1
types ×1
unit-testing ×1