问题列表 - 第8306页

Java中是否存在用于满足接口的空方法的习惯用法?

假设我有一个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)

java oop annotations idioms interface

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

使用innerHTML.replace替换文本以创建链接

我正在使用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)

javascript sharepoint wss innerhtml

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

wpf textbox textwrapping

我需要一些帮助.不知道这是否可行.我想要以下内容:

    <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要求控件想要它有多大,当用户添加超出边界的更多文本时,它会请求更多空间并且将其宽度扩展到无穷大.

wpf grid textbox word-wrap

9
推荐指数
1
解决办法
2万
查看次数

TSQL:触发器中的Try-Catch事务

我试图在使用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)

有没有办法解决?

t-sql sql-server triggers

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

Smalltalk中的消息转发

所以我正在编写一个应用程序,其中一个对象具有一组转发消息的委托对象.这个想法是我可以说的

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:.

oop abstraction smalltalk squeak

4
推荐指数
1
解决办法
911
查看次数

Subversion标记和安全性

我已经从头开始设置了一个SVN存储库,并且我已经使用SVN复制命令成功标记了我的一些版本.

我使用了SSPI auth插件来实现apache,因此我们的开发人员只需使用他们的网络凭据来访问服务器,一切都运行良好.

我创建了一个AuthZ授权文件,将我们的开发人员添加到文件中的组,并授予他们对root的写入权限.我还授予匿名用户对root的只读访问权限.

然后我用以下命令锁定/ svn /目录:Require-group"CORP\CKAN0BlahBlah"

这有效地将安全组中的新开发人员限制为只读访问,直到他们通过aAuthZ配置文件被授予访问权限.

现在,我有几个问题:

  1. 什么是阻止用户将更改提交到任何"标签"目录的正确方法(荣誉系统除外)?

  2. 是否可以使用SSPI将组成员传递给AuthZ,而不是在配置文件中单独列出成员?

svn version-control pre-commit-hook batch-processing

3
推荐指数
1
解决办法
1536
查看次数

Java/C#类型系统有哪些不足之处?

它经常听说Haskell(我不知道)有一个非常有趣的类型系统.我对Java非常熟悉,而且对C#有点熟悉,有时我会对类型系统进行战斗,所以有些设计适应或以某种方式更好地工作.

这让我想知道......

由于Java/C#类型系统的不足,以某种方式出现了什么问题?你是如何处理它们的?

c# java haskell type-systems

6
推荐指数
3
解决办法
2101
查看次数

如何手动打开hibernate会话?

我有一个涉及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会话.我该怎么做呢?或者,这个问题有更好的解决方案吗?

java spring hibernate lazy-loading

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

更好的Java方法语法?回来早还是晚?

重复: 函数是否只有一个return语句?

通常情况下,您可能会有一个检查众多条件并返回状态的方法(现在就说布尔值).最好定义一个标志,在方法中设置它,并在结尾返回它:

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块和所有其他类型的条件,但我认为这个概念很清楚.意见?

java coding-style return-path

6
推荐指数
3
解决办法
1万
查看次数

关于Apple Mail的.emlx数据结构的文档(用于转换目的)?

这似乎是一个罕见的宝石:在哪里可以找到Apple Mail的.emlx文件结构的文档(及其部分变体,以及目录结构的含义).这些文档似乎不存在于Apple的网站上,也无法通过Google找到任何合理的提及.

关键是要创建一个bash/ruby​​/python/insert-script-langauge-here脚本,将这些文件的混乱转换为可用/柔韧的东西,如Maildir或Mbox.最终目标是将用户/ Library/Mail商店的快照迁移到现有的Dovecot设置中,该设置使用Maildir的形式.

是的,我知道这个程序,但它没有解决我追求的解决方案.手动转换20个邮箱并手动将它们插入现有安装将需要更多的时间,而不仅仅是编写将消息摘要到其他内容的脚本,然后自动将它们存储在应有的位置.没关系,可能有六个以上的用户需要这个程序.所以值得花时间编写脚本.

如果该问题正在等待删除,请投票关闭此问题的副本,而不是投票支持此问题关闭.出于某种原因,使用Chrome作为浏览器时偶尔会出现发布故障.

后续行动:看起来格式确实没有记录,大多数消息来源都对其进行了逆向设计.如果我有时间,我会尝试自己这样做; 如果我成功了,我会发布第二次跟进,了解我的调查结果.

email apple-mail data-structures

6
推荐指数
1
解决办法
4312
查看次数