小编mem*_*und的帖子

Stringformatter可以重用参数吗?

String.format用来创建带参数的格式化字符串.是否有可能告诉格式化程序多次重用一个参数?

String.format(%s FOO %s %s, "test"); //desired output: "test FOO test test"
Run Code Online (Sandbox Code Playgroud)

java string

21
推荐指数
3
解决办法
4049
查看次数

用于getter/setter的Eclipse格式化程序为单行?

在使用自动格式化时,如何判断(如果有的话)Eclipse为getter或setter创建单行?

public User getUser() {
   return user;
}
Run Code Online (Sandbox Code Playgroud)

至:

public User getUser() { return user; }
Run Code Online (Sandbox Code Playgroud)

java eclipse

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

方法级别的Spring配置文件?

我想介绍一些只在开发过程中执行的方法.

我以为我可以Spring @Profile在这里使用注释?但是,如何在类级别上应用此批注,以便仅在属性中配置特定的配置文件时才调用此方法?

spring.profiles.active=dev
Run Code Online (Sandbox Code Playgroud)

将以下内容作为伪代码.如何才能做到这一点?

class MyService {

    void run() { 
       log();
    }

    @Profile("dev")
    void log() {
       //only during dev
    }
}
Run Code Online (Sandbox Code Playgroud)

java spring spring-profiles

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

如何使用流外部的值使用Java流API创建映射?

我想初始化Map<String, BigDecimal>并希望始终BigDecimal从流外部添加相同的值.

BigDecimal samePrice;
Set<String> set;

set.stream().collect(Collectors.toMap(Function.identity(), samePrice));
Run Code Online (Sandbox Code Playgroud)

但是Java抱怨如下:

收集器类型中的Map(Function,Function)方法不适用于参数(Function,BigDecimal)

为什么我不能从外面使用BigDecimal?如果我写:

set.stream().collect(Collectors.toMap(Function.identity(), new BigDecimal()));
Run Code Online (Sandbox Code Playgroud)

它会起作用,但那当然不是我想要的.

java java-8 java-stream collectors

20
推荐指数
3
解决办法
3488
查看次数

如何为log4j2定义全局PatternLayout?

是否可以PatternLayoutlog4j2.xml配置文件中定义(命名)?

<?xml version="1.0" encoding="UTF-8"?>
  <configuration status="ERROR">
    <appenders>
      <Console name="CONSOLE" target="SYSTEM_OUT">
        <PatternLayout pattern="%d %-5p %C{2} (%F:%L) - %m%n" />
      </Console>

      <File name="DEBUG_FILE" fileName="debug.txt">
        <PatternLayout pattern="%d %-5p %C{2} (%F:%L) - %m%n" />
      </File>
    </appenders>

    <loggers>
      <root level="trace">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="DEBUG_FILE" />
      </root>
    </loggers> 

</configuration>
Run Code Online (Sandbox Code Playgroud)

在这个例子PatternLayout中重复.我可以用名称以某种方式全局定义它,然后只使用名称引用来设置每个appender的模式吗?

java logging log4j2

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

spring-boot @ConditionalOnClass如何工作?

@ConditionalOnClass注释究竟如何工作?

我的目标是仅在jar提供此类包含在类路径中时才加载特定的bean .

我认为我可以注释一个@Beanwith @ConditionalOnClass(MyService.class)并将maven中的依赖声明为可选:

<dependency>
    <groupId>de.my</groupId>
    <artifactId>my-framework<artifactId>
    <optional>true</optional>
</dependency>

@Bean
@ConditionalOnClass(MyService.class)
public MyConditionalBean statistics() {
    return new MyConditionalBean();
}
Run Code Online (Sandbox Code Playgroud)

现在,任何具有my-framework依赖性的人都应该自动连接该bean.但是没有依赖的人应该跳过它.

但是当我启动应用程序时,我收到以下错误:

Caused by: java.lang.ClassNotFoundException: de.MyService.class
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702) ~[catalina.jar:7.0.50]
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547) ~[catalina.jar:7.0.50]
Run Code Online (Sandbox Code Playgroud)

所以我可能做错了什么.然后,我如何在依赖项jar和类路径中包含的类上创建bean条件?

从春季文档:

必须存在的类.由于通过加载类字节码解析此注释,因此可以安全地指定此处可能最终不在类路径上的类.

但错误表明不同......

java spring spring-boot

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

列表的Bean验证大小?

如何设置一个bean验证约束,它List应该至少包含1并且最多包含10个元素?

以下都不起作用:

@Min(1)
@Max(10)
@Size(min=1, max=10)
private List<String> list;
Run Code Online (Sandbox Code Playgroud)

java bean-validation

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

从抽象类继承注释?

我可以以某种方式在抽象类上对一组注释进行分组,并且扩展此类的每个类都自动分配了这些注释吗?

至少以下不起作用:

@Service
@Scope(value = BeanDefinition.SCOPE_PROTOTYPE)
class AbstractService


class PersonService extends AbstractService {
    @Autowired //will not work due to missing qualifier annotation
    private PersonDao dao;
}
Run Code Online (Sandbox Code Playgroud)

java spring dependency-injection

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

数组包含()没有区分大小写的查找?

我可以以某种方式告诉array.contains()方法不使查找区分大小写吗?

List<String> data = Arrays.asList(
  "one", Two", "tHRee"); //lots of entries (100+)

data.contains("three");
Run Code Online (Sandbox Code Playgroud)

java arrays

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

如何使用lambda流迭代嵌套列表?

我正在尝试使用`stream将以下代码重构为lambda表达式,尤其是嵌套的foreach循环:

public static Result match (Response rsp) {
    Exception lastex = null;

    for (FirstNode firstNode : rsp.getFirstNodes()) {
        for (SndNode sndNode : firstNode.getSndNodes()) {
            try {
                if (sndNode.isValid())
                return parse(sndNode); //return the first match, retry if fails with ParseException
            } catch (ParseException e) {
                lastex = e;
            }
        }
    }

    //throw the exception if all elements failed
    if (lastex != null) {
        throw lastex;
    }

    return null;
}
Run Code Online (Sandbox Code Playgroud)

我开始时:

rsp.getFirstNodes().forEach().?? // how to iterate the nested 2ndNodes?
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream

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