我最近遇到了一个Java 8类StringJoiner,它使用分隔符添加了String并添加了前缀和后缀,但我无法理解这个类的需要,因为它也在StringBuilder后端使用,并且还执行非常简单的附加操作字符串.
我是否因为没有真正理解这门课的真正目的而错过了一些东西?
这对我来说意外:
> Clock clock = Clock.systemUTC();
> Instant.now(clock).minus(3, ChronoUnit.DAYS);
java.time.Instant res4 = 2016-10-04T00:57:20.840Z
> Instant.now(clock).minus(3, ChronoUnit.YEARS);
java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Years
Run Code Online (Sandbox Code Playgroud)
作为一种解决方法,我必须这样做:
> Instant.now(clock).atOffset(ZoneOffset.UTC).minus(3, ChronoUnit.YEARS).toInstant();
java.time.Instant res11 = 2013-10-07T01:02:56.361Z
Run Code Online (Sandbox Code Playgroud)
我很好奇为什么Instant不支持YEARS.开发人员是否放弃了它?
(在我的实际代码中,我试图减去a,Period.ofYears(3)但引用的Instant方法最终被调用).
我很有棱角,所以请耐心等待.前几天我正在阅读一篇文章/文档,强调了在应用程序中构建模块的最佳方法,并且只能松散地记住它.
App.controllers
App.services
....
angular.module('App', [App.controllers, App.services ...);
Run Code Online (Sandbox Code Playgroud)
此代码示例很可能不正确,但重点是将控制器,服务等组合在一个命名空间中.
任何人都可以扩展这种方法吗?
在我的项目中,我很惊讶地看到Spring(4.3)似乎试图自动绑定类的依赖关系,即使它们是手动实例化的。
MyClass.java (请注意龙目岛注释):
@NoArgsConstructor
@AllArgsConstructor
public class MyClass {
@Autowired
private MyClassDependency dependency;
}
Run Code Online (Sandbox Code Playgroud)
MyClassDependency.java 使用工厂方法并且没有Spring注释:
public class MyClassDependency {
public static MyClassDependency create() { return new MyClassDependency(); }
}
Run Code Online (Sandbox Code Playgroud)
Spring配置导致NoSuchBeanDefinitionException:
@Configuration
public class SpringConfig {
@Bean
public MyClass myClass() {
return new MyClass(MyClassDependency.create());
}
}
Run Code Online (Sandbox Code Playgroud)
提供bean使Spring感到高兴:
@Configuration
public class SpringConfig {
@Bean
public MyClass myClass() {
return new MyClass(); // let autowire inject dependencies
}
@Bean
public MyClassDependency myClassDependency() {
return MyClassDependency.create();
}
}
Run Code Online (Sandbox Code Playgroud)
这对我来说是一个很大的惊喜。我想要配置的第一个简单版本...此行为来自/受控制的地方在哪里?(有可能我错过了它或将其从某些依赖项中删除了)。
PS:为澄清起见,MyClass …