小编Oli*_*POP的帖子

Java Math.pow的错误结果

如果您尝试运行以下代码

public class Main {
   public static void main(String[] args) {
       long a = (long)Math.pow(13, 15);
       System.out.println(a + " " + a%13);
   }
}
Run Code Online (Sandbox Code Playgroud)

你会得到"51185893014090752 8"

的正确值13 ^ 1551185893014090757,即,比由返回的结果更大的Math.pow5.任何可能导致它的想法?

java math pow long-integer

12
推荐指数
4
解决办法
6718
查看次数

基于注释的验证框架

我正在寻找一个基于注释的验证框架,它允许我验证参数值.类似于以下内容:

void someMethod(@NotBlank String foo, @NotEmpty Collection bar, @Positive Integer baz, @NotNull Object obj) {

}
Run Code Online (Sandbox Code Playgroud)

无论何时调用带注释的方法/构造函数,都应自动验证参数,以便无法绕过验证.

如果我可以自定义生成的错误消息,那将是很好的.我正在使用Java 1.5.

java validation

11
推荐指数
2
解决办法
7096
查看次数

git错误:"索引文件太小"

我不得不重新安装操作系统(Windows 7 x64),与项目相关的所有内容都在另一个分区上,所以我的项目仍然存在.我需要安装的应用程序也是git,但在我试图查看项目的状态(git status)后,发生了以下异常:

错误:索引文件.git/objects/pack/pack-d3325f684a4eca22c0c168d7c63119da147865e 4.idx太小

错误:索引文件.git/objects/pack/pack-d3325f684a4eca22c0c168d7c63119da147865e 4.idx太小

错误:索引文件.git/objects/pack/pack-d3325f684a4eca22c0c168d7c63119da147865e 4.idx太小

错误:索引文件.git/objects/pack/pack-d3325f684a4eca22c0c168d7c63119da147865e 4.idx太小

警告:packfile .git/objects/pack/pack-dc512716779f21b39f70fea9afcb5baa36ea872 d.pack无法访问

错误:索引文件.git/objects/pack/pack-d3325f684a4eca22c0c168d7c63119da147865e 4.idx太小

致命的:无法读取树30cda07e931a7c9f3b1e3383c18efa10b2523c67

这对我来说是第一个.我想知道其他人是否遇到了类似的东西,这是解决方案.

谢谢!

git

11
推荐指数
2
解决办法
7152
查看次数

即使不提交,也会调用AngularJS ng-submit事件处理程序

我正在尝试使用angular-ui设置表单验证.我想在提交之前检查表单是否有效,所以我已经设置了一个ng-submit事件处理程序.

但在实现任何验证之前,我注意到即使不提交表单也会调用事件处理程序.在下面的示例中,单击Add Item按钮时会调用它:

<div ng-app="app">
    <div ng-controller="ctrl">
        <form name="myForm" ng-submit="sub()" novalidate>                    
            <div ng-repeat="item in items">
                <ng-form name="row">
                    <input type="text" name="value" ng-model="item.value" required />                    
                </ng-form>
            </div>         
            <button ng-click="addItem()">Add Item</button>        
            <input type="submit" value="Submit"/>
        </form>
    </div>
</div>  
Run Code Online (Sandbox Code Playgroud)

和JS:

 var app = angular.module('app', ['ng']);

 app.controller('ctrl', ['$scope', function($scope) {
     $scope.items = [];
     $scope.addItem = function() {
         $scope.items.push({ value: $scope.items.length });
     };

     $scope.sub = function() {
         alert("submitted?");
     };
  }]);
Run Code Online (Sandbox Code Playgroud)

看到我的小提琴:

http://jsfiddle.net/UvLBj/2/

这应该发生吗?我觉得ng-submit不仅仅是在表单提交上被解雇了......我做错了吗?

angularjs

10
推荐指数
1
解决办法
4379
查看次数

使用groovy为java应用程序编写集成测试有什么好处?

我看到一些帖子(例如这里1)建议使用groovy在groovy编程语言中编写java应用程序的集成测试.我正在使用以下技术开发应用程序:Java 7,java EE 6,POSTGRESQL

我知道groovy是

  • 易于与java集成
  • 快速编写代码

但是有什么特别的理由将其用于IT吗?在你的代码库中添加另一种编程语言不会让你的生活变得糟糕吗?我想我错过了图片中的内容,所以我很感激您的回复.

java groovy continuous-integration integration-testing java-ee-6

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

wait()和yield()之间的区别

到目前为止,我对wait()和yield()方法的理解是,当线程没有执行任何任务并让CPU执行其他一些线程时,会调用yield().当一些线程被搁置并且通常用于同步的概念时,使用wait().但是,我无法理解其功能的差异,我不确定我所理解的是对还是错.有人可以解释它们之间的区别(除了它们存在的包装).

java multithreading

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

Java快速数据存储和检索

我需要将记录存储到持久存储中并按需检索它.要求如下:

  1. 极快的检索和插入
  2. 每条记录都有一个唯一的密钥.此密钥将用于检索记录
  3. 存储的数据应该是持久的,即应在JVM重启时可用
  4. 一个单独的进程会每天一次将过时的记录移动到RDBMS

你们有什么感想?由于延迟问题,我无法使用标准数据库.像HSQLDB/H2这样的内存数据库具有性能约束.此外,记录是简单的字符串对象,不符合SQL条件.我正在考虑某种基于平面文件的解决方案.有任何想法吗?任何开源项目?我相信,必须有人在此之前解决了这个问题.

java

8
推荐指数
3
解决办法
8740
查看次数

将Spock与Jenkins,Sonar整合的最佳实践

我们决定尝试将Spock作为基于java的EE应用程序的测试框架.目前,我们基于jenkins + maven + jacoco部署了CI基础架构.

问:问题是将spock与所有这些结合起来的最佳方法是什么?任何建议,最佳做法?

java build-automation continuous-integration spock sonarqube

8
推荐指数
1
解决办法
4811
查看次数

javax.xml.ws.WebServiceException:找不到提供者com.sun.xml.internal.ws.spi.ProviderImpl

我正在尝试在jdk1.5上运行webservice客户端并给我以下错误:

javax.xml.ws.WebServiceException: Provider com.sun.xml.internal.ws.spi.ProviderImpl not found
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.

java oracle

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

插入ArrayList时出现java.util.ConcurrentModificationException

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;

public class MyList {
    public static void main(String[] args) {
        ArrayList<String> al = new ArrayList<String>();

        al.add("S1");
        al.add("S2");
        al.add("S3");
        al.add("S4");

        Iterator<String> lir = al.iterator();

        while (lir.hasNext()) {
            System.out.println(lir.next());
        }

        al.add(2, "inserted");

        while (lir.hasNext()) {
           System.out.println(lir.next());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

特定的代码会引发错误:

Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
    at java.util.ArrayList$Itr.next(Unknown Source)
    at collections.MyList.main(MyList.java:32)
Run Code Online (Sandbox Code Playgroud)

java collections

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