需求和需要模块声明中的传递模块语句有什么区别?
例如:
module foo {
requires java.base;
requires transitive java.compiler;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Maven 3
在Spring Boot应用程序中设置一个活动的配置文件.在我的pom.xml中,我将默认的活动配置文件和属性spring.profiles.active设置 为开发:
<profiles>
<profile>
<id>development</id>
<properties>
<spring.profiles.active>development</spring.profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
但每次运行我的应用程序时,我都会在日志中收到以下消息:
No active profile set, falling back to default profiles: default
Run Code Online (Sandbox Code Playgroud)
并且SpringBoot配置文件设置为default(读取application.properties而不是application-development.properties)
我还应该怎样做才能使用Maven配置文件设置SpringBoot活动配置文件?
任何帮助高度赞赏.
我正在尝试使用gradle创建一个新的Java 9项目,但是在项目创建之后我从gradle收到错误:
Error:BUG! exception in phase 'class generation' in source unit '_BuildScript_' unsupported Target MODULE
Run Code Online (Sandbox Code Playgroud)
Java版本:9(build 9 + 178)
Gradle版本:4.1-rc-2
根据这篇文章,那些java/gradle版本应该是兼容的.
我怎么解决这个问题?
任何帮助高度赞赏.
在SpringBoot中读取环境变量的最佳方法是什么?
在Java中,我使用以下方法:
String foo = System.getenv("bar");
Run Code Online (Sandbox Code Playgroud)
是否可以使用@Value
注释来完成?
需求和需要模块声明中的静态模块语句有什么区别?
例如:
module bar {
requires java.compiler;
requires static java.base;
}
Run Code Online (Sandbox Code Playgroud) 类文件格式是否为使用变量的最终关键字提供支持?
或者它只是从代码中推断出变量的有效终结性而JIT编译器基于它执行优化?
这里,在类文件格式文档中,他们提到了关于final关键字,但仅限于将其与final块和final类一起使用的情况.最终变量
没有任何内容.
我想为 redis KEYS/SCAN命令定义以下类似 glob 的模式:
prefix:[^excludedPart]:suffix
Run Code Online (Sandbox Code Playgroud)
以便以下内容匹配:
prefix:any:sufix
Run Code Online (Sandbox Code Playgroud)
但这不会:
prefix:excludedPart:sufix
Run Code Online (Sandbox Code Playgroud)
我想创建集成测试,其中Spring Boot将使用@Value注释从.properties文件中读取值.
但每次我运行测试时,我的断言都会失败,因为Spring无法读取值:
org.junit.ComparisonFailure:
Expected :works!
Actual :${test}
Run Code Online (Sandbox Code Playgroud)
我的测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {WebTests.ConfigurationClass.class, WebTests.ClassToTest.class})
public class WebTests {
@Configuration
@ActiveProfiles("test")
static class ConfigurationClass {}
@Component
static class ClassToTest{
@Value("${test}")
private String test;
}
@Autowired
private ClassToTest config;
@Test
public void testTransferService() {
Assert.assertEquals(config.test, "works!");
}
}
Run Code Online (Sandbox Code Playgroud)
src/main/resource包下的application-test.properties包含:
test=works!
Run Code Online (Sandbox Code Playgroud)
这种行为的原因是什么?我该如何解决?
任何帮助高度赞赏.
创建对类对象的引用是否会导致加载类?加载类时会初始化静态变量,所以考虑到以下代码,答案是否定的,我是对的吗?
class A{
static int f(){
System.out.println("initializing!");
return 0;
}
static final int i = f();
}
public class Main {
public static void main(String[] args) {
A a;
}
}
Run Code Online (Sandbox Code Playgroud)
代码没有输出.
我正在阅读Java 8中的默认方法,我陷入了一件事 - 有没有办法从接口调用默认方法而不实现它,或者使用动态代理?通过使用一种简单的方法,如下面的方法:
interface DefaultTestInterface{
default void method1(){
//default method
}
}
class ImplementingClass implements DefaultTestInterface{
public void method1(){
//default method invocation in implementing method
DefaultTestInterface.super.method1();
}
void method2(){
//default method invocation in implementing class
DefaultTestInterface.super.method1();
}
}
public class Main {
public static void main(String[] args) {
//is there any way to simply invoke default method without using proxy and reflection?
}
}
Run Code Online (Sandbox Code Playgroud)
我读了类似的问题,但第一个只与实现方法中的调用相关联,另外两个与使用反射和反射的动态代理连接.
那些解决方案非常复杂,我想知道是否有更简单的方法.我也阅读了那些文章,但我找不到解决问题的方法.我将不胜感激任何帮助.
我想对流执行一些操作,然后将流分成两个流,然后分别处理它们。
显示问题的示例:
Flowable<SuccessfulObject> stream = Flowable.fromArray(
new SuccessfulObject(true, 0),
new SuccessfulObject(false, 1),
new SuccessfulObject(true, 2));
stream = stream.doOnEach(System.out::println);
Flowable<SuccessfulObject> successful = stream.filter(SuccessfulObject::isSuccess);
Flowable<SuccessfulObject> failed = stream.filter(SuccessfulObject::isFail);
successful.doOnEach(successfulObject -> {/*handle success*/}).subscribe();
failed.doOnEach(successfulObject -> {/*handle fail*/}).subscribe();
Run Code Online (Sandbox Code Playgroud)
班级:
class SuccessfulObject {
private boolean success;
private int id;
public SuccessfulObject(boolean success, int id) {
this.success = success;
this.id = id;
}
public boolean isSuccess() {
return success;
}
public boolean isFail() {
return !success;
}
public void setSuccess(boolean success) {
this.success = success;
} …
Run Code Online (Sandbox Code Playgroud) 我找到了JUnit 的解决方案,但找不到 TestNG 的解决方案。
我试图找出,如果有可能创建匿名内部类作为抽象.
我认为,它没有意义,因为我正在尝试创建抽象类的实例,但是来自编译器的消息使我感到困惑:
类'从Test派生的匿名类'必须被声明为abstract或实现抽象方法'方法( )'在测试中
码:
abstract class Test{
abstract void method();
}
Test o = new Test(){};
Run Code Online (Sandbox Code Playgroud)
如果可以将匿名类声明为抽象类,请告诉我如何执行此操作.
我很乐意回答.
java ×12
java-9 ×3
spring ×3
spring-boot ×3
java-module ×2
module-info ×2
abstract ×1
assertion ×1
bytecode ×1
class ×1
default ×1
equals ×1
final ×1
gradle ×1
java-8 ×1
jit ×1
junit4 ×1
loading ×1
maven ×1
methods ×1
performance ×1
redis ×1
reference ×1
requires ×1
rx-java ×1
stream ×1
testng ×1
unit-testing ×1