小编ams*_*ams的帖子

什么是Java 8 Lambda表达式编译?

请考虑以下Java 8代码段.

public static void main(String[] args) {            
   List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);

   Consumer<Integer>  consumer = x -> System.out.print(x);  

   integers.forEach(consumer);
}
Run Code Online (Sandbox Code Playgroud)

什么是Consumer<Integer> consumer = x -> System.out.print(x)编译到?

我知道Lambdas不是作为匿名内部类实现的.然而Consumer<Integer>,接口因此x -> System.out.print(x)必须产生某种对象,但不清楚生成什么样的对象.

Java 8中是否有一些新类型的对象来表示lambda表达式?

更新这里是程序与eclipse java 8编译器一起编译的反编译程序,下面的输出是在打开类文件时来自eclipse.

看起来lambda表达式在包含lambda表达式的类上变成了一个静态方法 private static synthetic void lambda$0(java.lang.Integer x);

// Compiled from Example.java (version 1.8 : 52.0, super bit)
public class Example {

  // Method descriptor #6 ()V
  // Stack: 1, Locals: 1
  public Example();
    0  aload_0 …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

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

将货币价值存储为美分/次要单位的缺点是什么?

我注意到一些财务api就像条件API用于信用卡处理要求金额作为美分传递,这似乎是一个很好的简化,它让我想知道为什么我不在我的应用程序的任何地方做同样的我目前在我的Java代码中使用数据库NUMERIC无限长度和Postgres和BigDecimal,但我很容易将钱存入美分.

  1. 将钱存入美分的缺点是什么?
  2. 是否有特定的操作难以用钱作为美分?
  3. 存储为美分的货币是否适用于所有世界范围的货币,或者对不同的货币进行会计处理会成为一个巨大的混乱吗?
  4. 是否有一个很好的Java库可以用钱作为美分?

更新对于没有美分的货币,我们可以将问题概括为将货币存储为货币的最小次要单位,因此美元和其他等价货币的美分.

database-design currency

21
推荐指数
2
解决办法
4418
查看次数

使用egit创建分支时,pull策略的含义是什么?

在EGit,当我到达时,Team > Switch to > New branch我最终得到下面的对话框.此对话框中列出的各种拉动策略的含义是什么?

在此输入图像描述

eclipse git egit jgit

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

如何指定bean将在Spring中注册的默认配置文件?

鉴于:

<beans ... namespace decelerations>
     <bean id="foo" class="com.example.foo" />
     <beans profile="abc">
         <bean id="bar" class="com.exmaple.bar" />
     </beans>
</bean>
Run Code Online (Sandbox Code Playgroud)

foo注册的个人资料的名称是什么?有没有办法在另一个配置文件定义中覆盖foo?如果未明确指定配置文件,是否在spring中有默认配置文件的名称.

java spring

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

是否有JDK或Guava方法将null转换为空列表?

在JDK或Google Guava中是否有像这样的方法

public static <T> Collection<T> safe(Collection<T> collection) {
    if (collection == null) {
        return new ArrayList<>(0);
    } else {
        return collection;
    }
}
Run Code Online (Sandbox Code Playgroud)

例如,如果某些东西返回空列表,则很容易在增强的循环上崩溃

for (String string : CollectionUtils.safe(foo.canReturnANullListOfStrings())) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

不会崩溃.

我环顾四周但找不到任何这样的方法,我想知道我是否错过了它,或者是否有理由为什么这样一个方便的方法不方便因此不包括在内?

java collections guava

20
推荐指数
4
解决办法
8011
查看次数

如何从本地maven repo中删除项目工件?

mvn install本地多模块项目上运行时,它会将项目工件构建并安装到本地存储库中.mvn clean似乎清理了我的项目特定目标目录.

我使用什么命令与maven从本地仓库卸载我的项目模块?例如我的项目输出foo-0.1.jar和bar-0.2.jar我希望那些从我的本地仓库中删除而不必去那里并自己删除它们.

maven-3 maven

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

安全,干净地重命名在Postgres中使用串行主键列的表?

我知道使用SERIAL主键的PostgreSQL表最终会有一个由PostgreSQL创建的隐式索引,序列和约束.问题是在重命名表时如何重命名这些隐式对象.下面是我尝试在最后通过具体问题解决这个问题.

给出一个像这样的表

CREATE TABLE foo (
    pkey SERIAL PRIMARY KEY,
    value INTEGER
);
Run Code Online (Sandbox Code Playgroud)

Postgres输出

CREATE TABLE foo (
  pkey serial NOT NULL,
  value integer,
  CONSTRAINT foo_pkey PRIMARY KEY (pkey )
);
ALTER TABLE foo OWNER TO postgres;
Run Code Online (Sandbox Code Playgroud)

PgAdmin III显示以下作为表的DDL

ALTER table foo RENAME TO bar;
Run Code Online (Sandbox Code Playgroud)

现在重命名表

CREATE TABLE bar (
  pkey integer NOT NULL DEFAULT nextval('foo_pkey_seq'::regclass),
  value integer,
  CONSTRAINT foo_pkey PRIMARY KEY (pkey )
);
ALTER TABLE bar OWNER TO postgres;
Run Code Online (Sandbox Code Playgroud)

Postgres输出

ALTER SEQUENCE foo_pkey_seq RENAME TO bar_pkey_seq;
Run Code Online (Sandbox Code Playgroud)

表格的PgAdmin III …

sql postgresql ddl database-design

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

OpenJDK JVM是否与Oracle Java SE JVM相同?

我知道Oracle Java SE包含不属于OpenJDK的闭源扩展和工具,但是Oracle Java SE JVM与OpenJDK JVM相同,或者Oracle在将其作为Java SE JVM发布之前是否对OpenJDK JVM进行了更改?

更新1: 我从JDK7更新项目中找到了一些信息:http://openjdk.java.net/projects/jdk7u/qanda.html

7 Update Project是否会收到Oracle的安全修复程序?

是.

与OpenJDK 6一样,安全修复程序首先保密,并在被推送到公共森林之前应用于私有森林,作为影响JDK发布列车的修复程序的一般同步发布的一部分.此外,他们不会通过公共代码审查和回拨审批流程,他们在项目问题跟踪器中的相应问题将不会公开显示.

java openjdk jvm java-7

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

何时使用Spring @Transactional(propagation = Propagation.SUPPORTS)?

根据Spring javadoc @Transactional(propagation = Propagation.SUPPORTS)

支持当前事务,如果不存在则以非事务方式执行.类似于同名的EJB事务属性.

似乎我只能非事务性地声明方法,并且只是完成它,所以我的问题是.

  • 在什么情况下需要SUPPORTS传播?
  • 支持传播有什么意义?

任何人都可以给出支持实际有用的真实世界示例/场景吗?

java spring ejb java-ee

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

如何让Spring打印出哪些弹簧轮廓是活动的?

我正在使用spring 3.1配置文件,并希望Spring在启动时打印出哪些配置文件处于活动状态.例如,日志文件中输出的前几行.

02:59:43,451 INFO  [ContextLoader] Root WebApplicationContext: initialization started
02:59:43,544 INFO  [XmlWebApplicationContext] Refreshing Root WebApplicationContext: startup date [Sun Dec 30 02:59:43 EST 2012]; root of context hierarchy
02:59:43,610 INFO  [XmlBeanDefinitionReader] Loading XML bean definitions from class path resource [spring.xml]
02:59:43,835 INFO  [XmlBeanDefinitionReader] Loading XML bean definitions from class path resource [spring-security.xml]
02:59:43,971 INFO  [SpringSecurityCoreVersion] You are running with Spring Security Core 3.1.3.RELEASE
02:59:43,971 INFO  [SecurityNamespaceHandler] Spring Security 'config' module version is 3.1.3.RELEASE
Run Code Online (Sandbox Code Playgroud)

我想从春天看到的东西是打印出正在使用的弹簧版本以及当前活动的配置文件.

如何让弹簧打印出它的版本以及哪些配置文件是活动的?

java spring

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