假设我有一个Foo实现接口的类,如MouseListener.该MouseListener接口由五个方法组成,但我只希望覆盖其中一个(mouseClicked()).是否有一种标准的,惯用的格式化其他方法的方法?
我倾向于写下以下内容:
@Override
public void mouseClicked(MouseEvent e) {
// (...) <-- actual code here
}
@Override
public void mouseEntered(MouseEvent e) {
// Do nothing. Exists to satisfy MouseListener interface.
}
@Override
public void mouseExited(MouseEvent e) {
// Do nothing. Exists to satisfy MouseListener interface.
}
@Override
public void mousePressed(MouseEvent e) {
// Do nothing. Exists to satisfy MouseListener interface.
}
@Override
public void mouseReleased(MouseEvent e) {
// Do nothing. Exists to satisfy …Run Code Online (Sandbox Code Playgroud) 我正在使用Sharepoint(WSS 3.0),遗憾的是它在格式化调查问题方面的能力非常有限(即,它会删除您输入的任何HTML).我在其他地方看到了一个解决方案,建议我们在主页文件中添加一些JS,以便允许换行.这很好用,但我想看看我们是否也允许链接.
在我们的WSS调查中,我现在可以在任何我希望换行的地方使用{{br}}(这很有效).我已尝试扩展代码以允许使用链接标记(例如,{{link1}}网址{{link2}}网址标题{{link3}};但是,这不起作用,大概是因为更新不是作为一个整体发生,然后浏览器尝试逐个渲染,混淆它.(FF和IE显示不同的结果,但都失败.如果我混淆了JS的顺序 - 即,做link3,2然后1 - 输出也会改变,但仍然失败.)有更好的方法吗?
<script language="JavaScript">
var className;
className = 'ms-formlabel';
var elements = new Array();
var elements = document.getElementsByTagName('td');
for (var e = 0; e < elements.length; e++)
{
if (elements[e].className == className){
elements[e].innerHTML = elements[e].innerHTML.replace(/{{br}}/g,'<br/>');
elements[e].innerHTML = elements[e].innerHTML.replace(/{{link1}}/g,'<a href="');
elements[e].innerHTML = elements[e].innerHTML.replace(/{{link2}}/g,'">');
elements[e].innerHTML = elements[e].innerHTML.replace(/{{link3}}/g,'</a>');}
}
</script>
Run Code Online (Sandbox Code Playgroud) 我需要一些帮助.不知道这是否可行.我想要以下内容:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBox TextWrapping="Wrap" MinLines ="5"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)
这是一个包含宽度为*的网格列内部的文本框.我希望文本框占用所有宽度(因此*),但是当用户添加文本时,我希望它在到达行尾时(可用空间)进行换行.
目前,上面将给出一个具有整个宽度的文本框,但是当输入文本时,文本框的宽度随着文本的增长而增长.
我知道我可以设置MaxWidth = ?,但是列是*的点是我不知道列的大小是多少.
我想对文本框说"不要长大,无论wpf给你带什么,不要再增加一个像素".
我认为我想要的是不可能的,因为wpf要求控件想要它有多大,当用户添加超出边界的更多文本时,它会请求更多空间并且将其宽度扩展到无穷大.
我试图在使用Microsoft Server 2005的触发器中放置一个try-catch语句.
BEGIN TRANSACTION
BEGIN TRY
--Some More SQL
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF (XACT_STATE()) = -1
BEGIN
ROLLBACK TRANSACTION;
END;
END CATCH
Run Code Online (Sandbox Code Playgroud)
问题是,如果try-catch块捕获了某些内容,我不希望触发器失败.目前,我收到错误"交易在触发器中结束.批次已中止." 如果交易失败.如何让触发器优雅地失败?
另外,如果我删除了该事务,我会收到错误"事务在触发器中注定.批处理已中止.".
BEGIN TRY
--Some More SQL
END TRY
BEGIN CATCH
return
END CATCH
Run Code Online (Sandbox Code Playgroud)
有没有办法解决?
所以我正在编写一个应用程序,其中一个对象具有一组转发消息的委托对象.这个想法是我可以说的
someObject sendMessage:aMessage
Run Code Online (Sandbox Code Playgroud)
并且aMessage将被发送给someObject的所有委托(对于aMessage的任何值).我能够做到这一点的唯一方法是:
sendMessage:aMessage
| sel chunks kwords arglist msg |
chunks := aMessage findTokens:' '.
kwords := Array new:(chunks size).
arglist := Array new:(chunks size).
1 to: (chunks size) do: [:i |
kwords at:i put:((chunks at:i) findTokens:':') at:1.
arglist at:i put:((chunks at:i) findTokens:':') at:2].
sel := ''.
kwords do:[:word | sel := sel,word,':'].
msg := Message selector:sel arguments:arglist.
delegates do:[:del | del perform:msg selector with:msg arguments].
Run Code Online (Sandbox Code Playgroud)
它有效,但必须有更好的方法.这个解决方案将参数限制为字符串,并且只是简单的丑陋.有谁知道更清晰,更好的转发消息的方式?
顺便说一下,我正在使用吱吱声,但是首选的是独立于实现的解决方案;)
编辑:我应该补充说,委托与对象属于同一类,所以我不能只重写DoesNotUnderstand:.
我已经从头开始设置了一个SVN存储库,并且我已经使用SVN复制命令成功标记了我的一些版本.
我使用了SSPI auth插件来实现apache,因此我们的开发人员只需使用他们的网络凭据来访问服务器,一切都运行良好.
我创建了一个AuthZ授权文件,将我们的开发人员添加到文件中的组,并授予他们对root的写入权限.我还授予匿名用户对root的只读访问权限.
然后我用以下命令锁定/ svn /目录:Require-group"CORP\CKAN0BlahBlah"
这有效地将安全组中的新开发人员限制为只读访问,直到他们通过aAuthZ配置文件被授予访问权限.
现在,我有几个问题:
什么是阻止用户将更改提交到任何"标签"目录的正确方法(荣誉系统除外)?
是否可以使用SSPI将组成员传递给AuthZ,而不是在配置文件中单独列出成员?
它经常听说Haskell(我不知道)有一个非常有趣的类型系统.我对Java非常熟悉,而且对C#有点熟悉,有时我会对类型系统进行战斗,所以有些设计适应或以某种方式更好地工作.
这让我想知道......
由于Java/C#类型系统的不足,以某种方式出现了什么问题?你是如何处理它们的?
我有一个涉及spring和hibernate的相当大的项目.现在,我正在将某些对象从休眠状态和内存中支持出来,而且我遇到了一些障碍.我有以下设置.
A类包含许多基元和B类.B包含基元和C类,它们之前是延迟加载的.
现在我有了这个
服务调用1:
1.)创建A类对象
2.)获取B类对象
3.)在A中设置B
4.)将A添加到内存中
服务电话2:
1.)从内存中获取A
2.)从A获得B
3.)从B获得C
4.)在C上操作
因为C是延迟加载的,它依赖于现有的休眠会话来懒惰地从B加载自身,至少我相信这是如此.但是,现在我需要延迟加载而不修改DAO以返回ID,并且当前没有 hibernate会话用于劫持OpenSessionInView.考虑到局限性,解决这个问题的最佳方法是什么?我发现的唯一解决方案依赖于不合适的代码更改或现有会话,所以我认为我可以手动打开一个hibernate会话.我该怎么做呢?或者,这个问题有更好的解决方案吗?
通常情况下,您可能会有一个检查众多条件并返回状态的方法(现在就说布尔值).最好定义一个标志,在方法中设置它,并在结尾返回它:
boolean validate(DomainObject o) {
boolean valid = false;
if (o.property == x) {
valid = true;
} else if (o.property2 == y) {
valid = true;
} ...
return valid;
}
Run Code Online (Sandbox Code Playgroud)
或者,一旦你知道方法的结果,简单地返回会更好/更正确吗?
boolean validate(DomainObject o) {
if (o.property == x) {
return true;
} else if (o.property2 == y) {
return true;
} ...
return false;
}
Run Code Online (Sandbox Code Playgroud)
现在显然可能有try/catch块和所有其他类型的条件,但我认为这个概念很清楚.意见?
这似乎是一个罕见的宝石:在哪里可以找到Apple Mail的.emlx文件结构的文档(及其部分变体,以及目录结构的含义).这些文档似乎不存在于Apple的网站上,也无法通过Google找到任何合理的提及.
关键是要创建一个bash/ruby/python/insert-script-langauge-here脚本,将这些文件的混乱转换为可用/柔韧的东西,如Maildir或Mbox.最终目标是将用户/ Library/Mail商店的快照迁移到现有的Dovecot设置中,该设置使用Maildir的形式.
是的,我知道这个程序,但它没有解决我追求的解决方案.手动转换20个邮箱并手动将它们插入现有安装将需要更多的时间,而不仅仅是编写将消息摘要到其他内容的脚本,然后自动将它们存储在应有的位置.没关系,可能有六个以上的用户需要这个程序.所以值得花时间编写脚本.
如果该问题正在等待删除,请投票关闭此问题的副本,而不是投票支持此问题关闭.出于某种原因,使用Chrome作为浏览器时偶尔会出现发布故障.
后续行动:看起来格式确实没有记录,大多数消息来源都对其进行了逆向设计.如果我有时间,我会尝试自己这样做; 如果我成功了,我会发布第二次跟进,了解我的调查结果.
java ×4
oop ×2
abstraction ×1
annotations ×1
apple-mail ×1
c# ×1
coding-style ×1
email ×1
grid ×1
haskell ×1
hibernate ×1
idioms ×1
innerhtml ×1
interface ×1
javascript ×1
lazy-loading ×1
return-path ×1
sharepoint ×1
smalltalk ×1
spring ×1
sql-server ×1
squeak ×1
svn ×1
t-sql ×1
textbox ×1
triggers ×1
type-systems ×1
word-wrap ×1
wpf ×1
wss ×1