标签: java-7

是否有可能在Java中改变从1970年到2008年的基本毫秒参考时间(如JSR-310)

我希望能够在Java中更改1970年到2008年的基本毫秒参考,这样我就可以节省数据库中的空间和唯一的ID.

最好是Joda-Time.

所谓的Java 7版本中即将推出的jsr-310实现了它.

在此链接的"离散时间轴"部分中,它指出毫秒的计数已从1970年改为2008年

http://today.java.net/pub/a/today/2008/09/18/jsr-310-new-java-date-time-api.html


我能看到的唯一其他选项是每次需要查找记录时以数学方式实现它.

例如

DateTime dt = new DateTime();  
long now = dt.getMillis();

DateTime dt2 = new DateTime(2008, 1, 1, 0, 0, 0, 0);  
long then = dt2.getMillis();

long smallerDate = now - then;
Run Code Online (Sandbox Code Playgroud)

较小的日期将存储在DB中

- 编辑 -

所以我误读了JSR-310,这是不可能的.

有更好的方法来节省空间,然后处理成千上万的请求计算多头的头痛.

我想将长记录为日期,因为我永远不会知道将数据库移动到哪里,也许MySQL => Oracle.

所以我不想要时间戳,我只想要BigInts.

java datetime jodatime java-7 jsr310

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

Maven挂在Windows上

我正在尝试使用maven(mvn)构建一个项目.您可能知道(对于以前使用过mvn的人),如果项目缺少任何构建依赖项,mvn首先从某个地方下载这些依赖项(我猜中央存储库).我的问题是,在Windows 7上,mvn在此下载阶段非确定性且经常挂起.昨天,我已经等了10个小时才能下载一个小到300-400 kbs的依赖项.有人知道如何解决这个问题或原因是什么?

谢谢,

windows maven java-7

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

使用Calendar类Java的意外行为

我有以下代码来获取当前系统日期的不同部分(本案例为10-11-2011).

Calendar now = Calendar.getInstance();
String dt = ""+now.get(now.DATE)+"-"+now.get(now.MONTH)+"-"+now.get(now.YEAR);
Run Code Online (Sandbox Code Playgroud)

在这里,DATEYEAR预期字段给值,但MONTH现场是给意想不到的效果,首先我没有知道MONTH现场始于零,所以有当月的11给我10.现在,如果我使用now.get(now.MONTH+1)它比它返回46.而使用简单now.MONTH而不是使用get方法给出2.

那么,我在这里做错了什么?它不应该是Calendar类中的错误.

请注意,我正在使用JDK 7.

java date java-7

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

将Java-1.7项目库导入Android时出错

我在最后几天问了很多问题,因为我在我的android项目中没有包含.jar-File(使用ant).

今天,我将这个Common-Project的Java版本切换为1.6并创建了一个新的.jar-File.

不,它有效!

有人能告诉我,为什么Android(2.2)不支持Java 1.7?

谢谢!

java android jar version java-7

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

另一种"比较方法违反了其总合同!"

作为实习的一部分,我被要求调查一个错误.一段代码正在抛出

java.lang.IllegalArgumentException:比较方法违反了它的一般合同!

自定义Comparator是通过查看long所述自定义类的成员变量来比较两个自定义类:

return v1 > v2 ? -1 : v1 < v2 ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)

equals此自定义类的方法查看此自定义类的String成员变量.我们有一段时间重现这种行为.我下意识的反应是代替return语句在自定义Comparatorreturn v2.compareTo(v1);范围,但我们是持怀疑态度,这将解决这个问题.有人可以提供任何见解吗?

Arrays.sort(anArray, new Comparator<ACustomClass>() {
  @Override
  public int compare(ACustomClass o1, ACustomClass o2) {
    long v1 = o1.getALong();
    long v2 = o2.getALong();
    return v1 > v2 ? -1 : v1 < v2 ? 1 : 0;
  }});
Run Code Online (Sandbox Code Playgroud)

java comparator illegalargumentexception java-7

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

如何表达类型T必须是U型?

Java泛型是否有办法告诉编译器类型T必须是类型U?例如

public class Whatever<T, U> {

    T specific;
    U moreGeneral;

}
Run Code Online (Sandbox Code Playgroud)

现在,我想确保T是其子类U.有没有办法指定这个?

java generics java-7 java-8

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

为什么在使用try-with-resources时在try()中声明Resource

try-with-resources语句 以下是来自Java Docs的示例

static String readFirstLineFromFile(String path) throws IOException {
    try (BufferedReader br =
                   new BufferedReader(new FileReader(path))) {
        return br.readLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

按照文档,

try-with-resources语句确保在语句结束时关闭每个资源.

我的问题是,为什么我需要在try关键字后立即在括号内声明资源.(比如上面的BuffereReader)

BuffereReader实现 java.lang.AutoCloseable

那么为什么不支持这样的事情,

static String readFirstLineFromFile(String path) throws IOException {
        try{
            BufferedReader br =
                       new BufferedReader(new FileReader(path))
            return br.readLine();
        }
    }
Run Code Online (Sandbox Code Playgroud)

并且只是在尝试之后隐式关闭资源对象.(因为它实现了AutoCloseable)

我只是想了一下,为什么要改变语法.

请正确阅读问题,仅关于语法.

java exception-handling exception java-7 try-with-resources

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

Hadoop 2.7.4 namenode无法启动:不支持的major.minor版本52.0

我最近遇到了问题,在单节点机器上安装hadoop.

命令的错误日志

bin/hadoop namenode -format

STARTUP_MSG:   java = 1.7.0_80
************************************************************/
17/08/22 21:03:56 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]
17/08/22 21:03:56 INFO namenode.NameNode: createNameNode [-format]
17/08/22 21:03:58 ERROR namenode.NameNode: Failed to start namenode.
java.lang.UnsupportedClassVersionError: org/apache/hadoop/mapreduce/lib/output/SequenceFileAsBinaryOutputFormat : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.apache.hadoop.mapreduce.util.ConfigUtil.addDeprecatedKeys(ConfigUtil.java:54)
    at org.apache.hadoop.mapreduce.util.ConfigUtil.loadResources(ConfigUtil.java:42)
    at org.apache.hadoop.mapred.JobConf.<clinit>(JobConf.java:119)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:278) …
Run Code Online (Sandbox Code Playgroud)

java hadoop java-7

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

Streams backport编译错误

使用与Java 7 编译器的streamsupportjavac我遇到以下编译错误:

接口java8.util.stream.Stream <T>中的[ERROR]方法映射不能应用于给定类型; 需要[ERROR]:java8.util.function.Function <?超级java.lang.Object,?扩展R>

[ERROR]发现:<anonymous java8.util.function.Function <java.lang.Integer,java.lang.String >> [ERROR]原因:没有类型变量的实例R存在以便参数类型<anonymous java8.util.function.Function <java.lang.Integer,java.lang.String >>符合形式参数类型java8.util.function.Function <?超级java.lang.Object,?扩展R>

我的代码是

List<Object> listSum = RefStreams.iterate(0, new UnaryOperator<Integer>() {
            @Override
            public Integer apply(Integer n) {
                return n+1;
            }
        }).limit(10000).map(new Function<Integer,String>() {
            @Override
            public String apply(Integer n) {
                return String.format("%04d", n);
            }

        }).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

我想知道该怎么做以及为什么会出现这个错误?谢谢

java-7 java-stream

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

结合使用TLSv1.2和Microsoft JDBC驱动程序和Oracle JRE 7

有一个应用程序可在Oracle JRE 7上运行,并使用标准Microsoft jdbc驱动程序与Microsoft SQL Server交换数据。

在部署此应用程序的公司决定将数据库更新到SQL Server 2017并禁用所有低于TLSv1.2的TLS协议之前,它一直运行良好。现在,应用程序在尝试连接到SQL Server时出现以下错误:

com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. 
Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:5892fb2f-67c4-45f5-a01d-cc7c1db8f69e".
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1668)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1323)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
    at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:131)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:156)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:145)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
    at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
    at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
    at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)
Caused by: java.io.IOException: SQL Server did not …
Run Code Online (Sandbox Code Playgroud)

sql-server java-7 mssql-jdbc tls1.2

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