小编Bra*_*ugh的帖子

将一个原始long数组转换为Longs列表

这可能是一个简单的问题,但是我的第一次尝试完全失败了.我想取一个原始long的数组并将其转换为一个列表,我尝试这样做:

long[] input = someAPI.getSomeLongs();
List<Long> inputAsList = Arrays.asList(input); //Total failure to even compile!
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

java arrays collections boxing

132
推荐指数
11
解决办法
8万
查看次数

恢复git-svn克隆

我开始使用git-svn的克隆操作克隆SVN存储库.导入大约6个小时后(这是一个很大的回购),我的电脑就睡着了.有没有办法在不重做所有初始工作的情况下恢复操作?

git git-svn

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

Java中是否有Null OutputStream?

我需要指定一个OutputStream我正在使用的API,但我实际上并不需要输出.Java有OutputStream相当于> /dev/null

java outputstream

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

我可以从Eclipse切换SVN存储库吗?

我正在将我的Subversion存储库从一台机器移动到另一台机器.我在各种机器上有一些零散的工作副本,我发现我可以使用以下命令轻松地将工作副本从旧服务器切换到新服务器:

svn --relocate svn://oldServer/repo svn://newServer/repo
Run Code Online (Sandbox Code Playgroud)

但是,在我的一台机器上,我使用Eclipse和Subclipse,我不喜欢在Eclipse项目中使用命令行SVN.我的问题是是否可以使用Subclipse或Subversive从Eclipse中切换SVN存储库.

eclipse svn

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

春天和贫血领域的模型

所以,我注意到我绝对倾向于模式化我的Spring/Hibernate堆栈对象,如下所示:

  • Foo控制器调用"FooService"
  • FooService调用FooRepository.getById()方法来获取一些Foos.
  • FooRepository进行一些Hibernate调用来加载Foo对象.
  • FooService与Foos进行一些互动.它可以使用相关的TransactionalFooService来处理需要在事务中一起完成的事情.
  • FooService要求FooRepository保存Foos.

这里的问题是Foos没有任何真正的逻辑.例如,如果每次Foo到期时都需要发送电子邮件,则不会调用Foo.expire().有一个对FooService.expireFoo(fooId)的调用.这有以下几种原因:

  • 从Foo获取其他服务和对象很烦人.它不是Spring bean,而是由Hibernate加载的.
  • 让Foo在事务上做几件事很烦人.
  • 很难确定Foo是否应该负责选择何时保存自己.如果你调用foo.setName(),foo应该保持更改吗?它应该等到你调用foo.save()吗?foo.save()应该调用FooRepository.save(this)吗?

因此,出于这些原因,我的Spring域对象往往是带有一些验证逻辑的美化结构.也许这没关系.也许Web服务可以作为程序代码.也许随着新功能的编写,创建以新方式处理相同旧对象的新服务是可以接受的.

但是我想摆脱这种设计,我想知道其他Spring使用的是什么呢?你是否用装载时编织等花哨的技巧来对抗它(我觉得不舒服)?你有其他的伎俩吗?你认为程序是好的吗?

oop spring

64
推荐指数
3
解决办法
4813
查看次数

如果<form>中的action字段有参数会发生什么?

如果我在HTML中执行类似这样的操作,是否有一个受到良好支持的常见行为:

<form method="get" action="/somePage.html?param1=foo&param2=foo">
  <input name="param2"></input>
  <input name="param3"></input>
</form>
Run Code Online (Sandbox Code Playgroud)

似乎这种事情本质上是荒谬的,但我已经看到它在这里和那里使用,我想知道地球上预期的行为应该是什么.浏览器是否足够聪明,可以在操作中使用"¶m2 = whatever¶m3 = whatever",还是仅仅提出第二个问号?或者是什么?有没有这种情况实际上是正确的做事方式?

html forms query-string

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

Jackson Mapper后期构建

我正在使用Jackson ObjectMapper将一些JSON反序列化为Java类,我们将其称之为PlayerData.我想在类中添加一些逻辑来在PlayerData加载字段后修复一些数据.例如,一些早期的JSON文件用于使用"性别"标志而不是"性别"标志,所以如果性别标志已设置但性别标志未设置,我想将性别字段的值设置为性别字段的值.

是否有某种@PostConstruct或@AfterLoad注释可以粘贴到方法中?或者也许是我可以实现的界面?我没有注意到文档中的一个,但它似乎是一个显而易见的功能.

java mapping jackson

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

测试Spring MVC注释映射

使用Spring MVC,您可以指定特定URL将由特定方法处理,并且您可以指定特定参数将映射到特定参数,如下所示:

@Controller
public class ImageController {

   @RequestMapping("/getImage")
   public String getImage( @RequestParam("imageId") int imageId, Map<String,Object> model ) {
      model.put("image",ImageService.getImage(imageId));
   }

}
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但现在我想测试带有imageId参数的http请求将正确调用此方法.换句话说,如果我删除或更改任何注释,我想要一个会破坏的测试.有没有办法做到这一点?

很容易测试getImage是否正常工作.我可以创建一个ImageController并使用适当的参数调用getImage.但是,这只是测试的一半.测试的另一半必须是当适当的HTTP请求进入时,Spring框架是否会调用getImage().我觉得我还需要对此部分进行测试,特别是当我的@RequestMapping注释变得更复杂并调用复杂参数时条件.

如果我删除第4行,你能告诉我一个测试会破坏@RequestMapping("getImage")吗?

java spring spring-mvc

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

简单的java消息调度系统

我正在开发一个可以发生各种事件的小型Java游戏.至少有几十个基本事件,各种事件处理程序可能会感兴趣.代码中还有几个地方可能会触发这些事件.我不想强迫事件监听器知道他们需要注册哪个类,而是想创建某种集中式的消息调度系统,有些类会将事件提交到,感兴趣的类可以挂钩来监听某些类型事件.

但我有一些问题.首先,这似乎是一个明显而常见的问题.是否有简单的虚拟机内消息系统的最佳实现?好像会有.

其次,更重要的是,我正在尝试为调度类找出一种相当优雅的方式来尽可能少地了解消息的类型.我希望能够在不修改消息调度程序的情况下创建新类型的事件.但是,我有一个相反的担忧.我真的很喜欢处理方法的方法签名要清楚.换句话说,我更喜欢以下内容:

public class CollisionConsoleHandler implements CollisionListener {
  @Override
  public void spaceshipCollidedWithMeteor( Spaceship spaceship, Meteor meteor ) {
      //...
  }
}
Run Code Online (Sandbox Code Playgroud)

更通用,更难阅读的东西:

public class CollisionConsoleHandler implements GameMessageListener {
   @Override
   public void handleMessage( GameMessage message ) {
     if( message instanceof SpaceshipCollisionMessage ) {
        Spaceship spaceship = ((SpaeshipCollisionMessage)message).getSpaceship();
        Meteor meteor = ((SpaeshipCollisionMessage)message).getMeteor();
        //...
     }
   }
}
Run Code Online (Sandbox Code Playgroud)

但是我没有看到任何好的方法将类型特定的知识保留在调度程序之外,同时保持方法签名的清晰和可读性.

想法?

java events design-patterns

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

为什么(a | b)相当于 - (a&b)+ b?

我正在寻找一种方法来使用Oracle数据库进行BITOR()并且遇到了一个建议,只需使用BITAND()代替BITOR(a,b)替换为+ b - BITAND(a,b).

我用手测试了几次并验证它似乎适用于我能想到的所有二进制数,但我无法想出为什么这是正确的快速数学证明.
有人可以开导我吗?

theory oracle binary computer-science proofs

19
推荐指数
3
解决办法
1226
查看次数