小编And*_*lko的帖子

如何从ArrayList中删除重复的元素?

我有一个ArrayList<String>,我想从中删除重复的字符串.我怎样才能做到这一点?

java collections list arraylist duplicates

472
推荐指数
15
解决办法
74万
查看次数

Java 8属性不同

在Java 8中,如何Stream通过检查每个对象的属性的清晰度来使用API 过滤集合?

例如,我有一个Person对象列表,我想删除具有相同名称的人,

persons.stream().distinct();
Run Code Online (Sandbox Code Playgroud)

将使用Person对象的默认相等检查,所以我需要像,

persons.stream().distinct(p -> p.getName());
Run Code Online (Sandbox Code Playgroud)

不幸的是,该distinct()方法没有这种过载.如果不修改类中的相等性检查,Person是否可以简洁地执行此操作?

java collections java-8 java-stream

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

Java泛型 - 为什么允许"扩展T"而不是"实现T"?

我想知道Java中是否存在使用always" extends"而不是" implements"来定义类型参数边界的特殊原因.

例:

public interface C {}
public class A<B implements C>{} 
Run Code Online (Sandbox Code Playgroud)

被禁止但是

public class A<B extends C>{} 
Run Code Online (Sandbox Code Playgroud)

是正确的.这是什么原因?

java generics syntax design-choices

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

如何在Spring Boot中记录SQL语句?

我想在文件中记录SQL语句.
我有以下属性application.properties

spring.datasource.url=...
spring.datasource.username=user
spring.datasource.password=1234
spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

security.ignored=true
security.basic.enabled=false

logging.level.org.springframework.web=INFO
logging.level.org.hibernate=INFO
logging.file=c:/temp/my-log/app.log
Run Code Online (Sandbox Code Playgroud)

当我运行我的应用程序

cmd>mvn spring-boot:run
Run Code Online (Sandbox Code Playgroud)

我可以在控制台中看到sql语句,但它们不会出现在app.log文件中.该文件仅包含spring的基本日志.

如何在日志文件中查看sql语句?

java logging spring hibernate spring-boot

291
推荐指数
15
解决办法
26万
查看次数

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

静态初始化块

据我所知,"静态初始化块"用于设置静态字段的值,如果不能在一行中完成的话.

但我不明白为什么我们需要一个特殊的块.例如,我们将一个字段声明为静态(没有值赋值).然后编写几行代码,生成并为上面声明的静态字段赋值.

为什么我们需要在一个特殊的块这样的行这样的:static {...}

java static initialization static-block initialization-block

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

在运行时扫描Java注释

搜索带注释类的整个类路径的最佳方法是什么?

我正在做一个库,我想允许用户注释他们的类,所以当Web应用程序启动时,我需要扫描整个类路径以获取某些注释.

你知道一个库或Java工具吗?

编辑:我正在考虑类似Java EE 5 Web服务或EJB的新功能.您使用@WebServiceor 注释您的类,@EJB并且系统在加载时查找这些类,以便远程访问它们.

java annotations classloader

243
推荐指数
10
解决办法
16万
查看次数

为什么在Optional.ofNullable上使用Optional.of?

使用Java 8 Optional类时,有两种方法可以将值包装在可选项中.

String foobar = <value or null>;
Optional.of(foobar);         // May throw NullPointerException
Optional.ofNullable(foobar); // Safe from NullPointerException
Run Code Online (Sandbox Code Playgroud)

我理解Optional.ofNullable是唯一安全的使用方式Optional,但为什么Optional.of存在呢?为什么不Optional.ofNullable 随时使用并保持安全?

java null nullpointerexception optional java-8

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

为什么x ==(x = y)与(x = y)== x不相同?

请考虑以下示例:

class Quirky {
    public static void main(String[] args) {
        int x = 1;
        int y = 3;

        System.out.println(x == (x = y)); // false
        x = 1; // reset
        System.out.println((x = y) == x); // true
     }
}
Run Code Online (Sandbox Code Playgroud)

我不确定Java语言规范中是否有一个项目要求加载变量的先前值以与右侧(x = y)进行比较,右侧()按括号隐含的顺序首先计算.

为什么第一个表达式评估false,但第二个表达式评估为true?我本来期望(x = y)先评估,然后它会x与自己(3)进行比较并返回true.


这个问题与Java表达式中子表达式的评估顺序不同,这x绝对不是这里的"子表达式".需要加载它以进行比较而不是"评估".这个问题是特定于Java的,而且这个表达式x == (x = y)不同于通常为棘手的面试问题精心设计的不切实际的结构,而是来自一个真实的项目.它应该是比较和替换成语的单行替代品

int oldX = x;
x = y;
return …
Run Code Online (Sandbox Code Playgroud)

java equality variable-assignment operator-precedence jls

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

Spring AOP vs AspectJ

我的印象是Spring AOP最适合用于特定于应用程序的任务,例如安全性,日志记录,事务等,因为它使用自定义Java5注释作为框架.然而,AspectJ似乎更加友好的设计模式.

任何人都可以强调在Spring应用程序中使用Spring AOP和AspectJ的各种优缺点吗?

java spring design-patterns aspectj spring-aop

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