我正在使用一个名为Predicate的接口,用于筛选集合.例如,我可以定义
public class BlackCatPredicate implements Predicate<Cat> {
public boolean evaluate( Cat c ) {
return c.isBlack();
}
}
Run Code Online (Sandbox Code Playgroud)
然后使用一些实用工具findAll( Collection<T> coll, Predicate<T> pred)方法将谓词应用于Cats的集合,并获得黑色的等等.
我的问题是:我在我的代码中找到黑猫,所以没有必要一遍又一遍地实例化BlackCatPredicate.它应该只有一个实例.(单身?)但是,在编写许多谓词的过程中,我不想将每个谓词都作为单例来实现.那么 - 这里的设计是什么?
我知道如何做到这一点,但我想我会用双重选择过度复杂化等等.
你怎么能这样做(在伪sql中的例子)
UPDATE some_table SET an_int_value = (an_int_value==1 ? 0 : 1);
Run Code Online (Sandbox Code Playgroud)
由于某些其他功能,它必须是int值,但是如何以简单的方式执行?
我正在使用FormsAuthentication用于ASP.NET站点,该站点具有显示当前登录用户的主页,Page.User.Identity.Name.
他们可以在他们的设置中更改他们的用户名,当这样做时,我会为他们更新他们的cookie,这样他们就不必签回/用回发签到.
FormsAuthentication.SignOut();
FormsAuthentication.SetAuthCookie(username, false);
Run Code Online (Sandbox Code Playgroud)
我可能非常挑剔,但在他们更改用户名后,母版页仍会显示其原始用户名,直到他们重新加载或加载不同的页面.
有没有办法以编程方式更新当前的Page.User,以便在同一回发期间显示他们的新用户名?
我有一个使用urllib2的Python Web客户端.向我的传出请求添加HTTP标头很容易.我只是创建一个我想要添加的标题的字典,并将其传递给Request初始化程序.
但是,其他"标准"HTTP标头会添加到请求以及我明确添加的自定义HTTP标头中.当我使用Wireshark嗅探请求时,除了我自己添加的标题之外,我还会看到标题.我的问题是我如何访问这些标题?我想记录每个请求(包括完整的HTTP标头集),并且无法弄清楚如何.
任何指针?
简而言之:如何从urllib2创建的HTTP请求中获取所有传出标头?
给出各种长度单词的列表,找到任何单词的最大长度的最佳方法是什么?
例如,以下应返回6
findMaxLen("a,set,of,random,words")
Run Code Online (Sandbox Code Playgroud)
当然,这样做是相当微不足道的......
<cffunction name="findMaxLen" returntype="Numeric">
<cfset var CurMax = 0 />
<cfset var CurItem = 0 />
<cfloop index="CurItem" list="#Arguments[1]#">
<cfif Len(CurItem) GT CurMax >
<cfset CurMax = Len(CurItem)/>
</cfif>
</cfloop>
<cfreturn CurMax />
</cffunction>
Run Code Online (Sandbox Code Playgroud)
或者,更短一点......
<cffunction name="findMaxLen" returntype="Numeric">
<cfset var CurMax = 0 />
<cfset var CurItem = 0 />
<cfloop index="CurItem" list="#Arguments[1]#">
<cfset CurMax = Max( CurMax , Len(CurItem) ) />
</cfloop>
<cfreturn CurMax />
</cffunction>
Run Code Online (Sandbox Code Playgroud)
但是有更好的方法 - 更高效的东西吗?
也许是一些Java方法?转换为数组并按项目长度排序?计算逗号之间的最大差距?
在实际应用中,无论是上述两个例子将罚款我目前的需求,这是不适合的东西是性能的关键,所以我并不需要一个答案,但我认为这仍然将是有趣的看看人们会想出什么......
我正在考虑在我的应用程序中使用PostgreSQL的Ltree模块来帮助处理线程注释.我一直在讨论它用于线程评论.我认为这对于需要更新节点及其子节点的情况有帮助,例如当您想要隐藏注释及其回复时.
我正在考虑它(或类似的东西)如果它与传统的邻接列表("comment_id"/"parent_comment_id")相结合将是有用的.
在开始使用ltree之前,我想知道一些事情:
如果它有任何帮助,这里是我正在考虑的架构:
CREATE TABLE comments (
comment_id SERIAL PRIMARY KEY,
parent_comment_id int REFERENCES comments(comment_id) ON UPDATE CASCADE ON DELETE CASCADE,
thread_id int NOT NULL REFERENCES threads(thread_id) ON UPDATE CASCADE ON DELETE CASCADE,
path ltree NOT NULL,
comment_body text NOT NULL,
hide boolean not null default false
);
Run Code Online (Sandbox Code Playgroud)
ltree使用的"path"列看起来像:
<thread_id>.<parent_comment_id_#1>.<parent_comment_id_#2>.<my_comment_id>
Run Code Online (Sandbox Code Playgroud)
在路径中使用主键有什么问题吗?我应该在路径中包含节点自己的主键吗?如果我这样做,在它上面放一个唯一的索引作为约束是否有意义?
我一直在this this for for for for for for and and and while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while while
我认为,在我的设计的概念阶段提前,从iPhone的相机或库中获取图像,将其缩小到指定高度,使用与Aspect Fill选项相当的功能将是一件小事. UIImageView(完全在代码中),然后裁掉任何不适合传递给CGRect的东西.
从相机或图书馆获取原始图像非常简单.我很惊讶其他两个步骤的难度.
附图显示了我想要实现的目标.有人请你好好握住我的手吗?到目前为止我发现的每个代码示例似乎都会破坏图像,颠倒过来,看起来像废话,画出界限,或者其他方法都不能正常工作.
特别是,我遇到了.NET DateTime处理的闰年ToLocalTime().这里有一些代码可以重现问题(我在太平洋时区):
DateTime dtStartLocal = DateTime.Parse("2009-02-28T23:00:00.0-08:00");
DateTime dtEndLocal = dtStartLocal.AddYears(3);
DateTime dtStartUtc = dtStartLocal.ToUniversalTime();
DateTime dtEndUtc = dtStartUtc.AddYears(3);
DateTime dtEndLocal2 = dtEndUtc.ToLocalTime();
DateTime dtStartLocal2 = dtStartUtc.ToLocalTime();
Console.WriteLine("START: 1={0}, 2={0}", dtStartLocal, dtStartLocal2);
Console.WriteLine("END : 1={0}, 2={1}", dtEndLocal, dtEndLocal2);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
输出是:
START:1 = 2/28/2009 11:00:00 PM,2 = 2/28/2009 11:00:00 PM
END:1 = 2/28/2012 11:00:00 PM,2 = 2/29/2012 11:00:00 PM
注意我所做的变量ToUniversalTime().AddYears(3).ToLocalTime()不仅仅是AddYears(3),它提前了一天.
有没有遇到过这个?如果这是预期的,有人可以解释它背后的逻辑吗?
注意:是的,最好的方法是完全使用UTC,而不是在它们之间翻转.这不是影响我的东西,而是我遇到的一种特殊性.基本上我误解了AddYears()它是如何工作的,现在我可以看出为什么它正在做它正在做的事情(见下面我选择的答案).
我正在C#中开展一个非常简单的项目.
我有一个状态框,两个按钮和一个dataGridView.
当Form加载时,dataGridView被正确填充.
我想要做的是每隔45秒更新一次该表以反映数据库中的任何更改.
我正在寻找有关实现这一目标的技术的建议.我一直在寻找明确的信息,但似乎有点缺乏.
c# ×2
python ×2
.net ×1
asp.net ×1
code-golf ×1
coldfusion ×1
comments ×1
database ×1
datagridview ×1
datetime ×1
generics ×1
hierarchy ×1
httpcontext ×1
ios ×1
iphone ×1
java ×1
leap-year ×1
list ×1
multicast ×1
mysql ×1
postgresql ×1
predicate ×1
singleton ×1
string ×1
tree ×1
urllib2 ×1
winforms ×1