我有两个结构如下的类:
public class Company {
private List<Person> person;
...
public List<Person> getPerson() {
return person;
}
...
}
public class Person {
private String tag;
...
public String getTag() {
return tag;
}
...
}
Run Code Online (Sandbox Code Playgroud)
基本上,Company类有一个Person对象列表,每个Person对象都可以获得Tag值.
如果我得到Person对象的List,有没有办法使用来自Java 8的Stream来找到所有Person对象中最常见的一个Tag值(如果是平局,可能只是最随机的一个)共同)?
String mostCommonTag;
if(!company.getPerson().isEmpty) {
mostCommonTag = company.getPerson().stream() //How to do this in Stream?
}
Run Code Online (Sandbox Code Playgroud) 我有一个构建列表的方法,我希望它将列表的平均值作为可选值返回.
但是,当我使用Java 8计算平均值时,我总是将返回值作为OptionalDouble.
我该如何转换?
OptionalDouble to Optional<Double>?
Run Code Online (Sandbox Code Playgroud)
以下是我的平均计算代码:
private static Optional<Double> averageListValue() {
// Build list
List<Double> testList = new ArrayList<>();
testList.add(...);
...
...
return testList.stream().mapToDouble(value -> value).average();
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
我目前正在使用一个项目,在后端使用SpringBoot,在前端使用HTML5和Angular 2.
部署项目后,当我在浏览器中导航时,一切正常,直到我按下重新加载按钮.浏览器将显示错误页面.
白标错误页面
此应用程序没有/ error的显式映射,因此您将此视为回退.
2017年5月8日星期一10:16:14 CDT 2017
出现意外错误(type = Not Found,status = 404).
没有可用的消息
这显然是由于使用HTML 5历史记录API在浏览器URL中存储客户端导航.
因此,当我开始点击页面上的项目时,我看到URL会自动附加.
但是,当点击刷新时,这将成为一个问题,完整的附加URL将发送到无法理解它的服务器,因为该附加URL的特定映射不存在.
是否有修复此更新服务器端配置,以便任何未知的URL返回根index.html视图的视图?
例如,当我点击刷新时,被查询的URL只是根URL http://localhost:8080/root
,而不是附加的URL.
这将使浏览器正确导航而不是尝试在服务器端执行此操作.
我使用Liquibase
更改日志向现有表添加了一列,并将可为空约束设置为 true。
代码:
<changeSet id="10" author="000000">
<addColumn tableName="NCV_ATTRIBUTE">
<column name="AlternativeListPrice" type="double" defaultValue="0.0">
<constraints nullable="true"/>
</column>
</addColumn>
</changeSet>
Run Code Online (Sandbox Code Playgroud)
我想在 changeSet 11 中将可空约束从 true 更改为 false。实现此目的的最简单方法是什么?
谢谢。
目前我有三个表:公司,集团,人.
公司连接的三个表是一对多的Group,Group是一对多的Person.
在所有三个类(Company.java,Group.java,Person.java)中,我用这种方式编写了自动增量唯一ID:
@Id
@Column(name = "id")
@GeneratedValue
private int id;
Run Code Online (Sandbox Code Playgroud)
然后我按此顺序实例化所有三个类:Company,Group,Person.
将这些对象保存到我的数据库后,我注意到表中的id有问题.
显然,而不是按顺序1,2,3,4等增加公司的ID; 它在1,4,7,10增加......
在同样的逻辑中,Group的id为2,5,8,11 ......
我该怎么做才能防止@GeneratedValue计数器在三个不同的表之间共享?我应该使用其他或不同的标签吗?
谢谢.
我有两个结构如下的类:
public class Company {
private List<Person> person;
...
public List<Person> getPerson() {
return person;
}
...
}
public class Person {
private Double age;
...
public Double getAge() {
return age;
}
...
}
Run Code Online (Sandbox Code Playgroud)
基本上,Company类有一个Person对象列表,每个Person对象都可以获得Age值.
如果我得到Person对象的列表,是否有一种很好的方法可以使用Java 8在所有Person对象中找到中位数Age值(Stream不支持中位数但是还有其他内容)?
Double medianAge;
if(!company.getPerson().isEmpty) {
medianAge = company.getPerson() //How to do this in Java 8?
}
Run Code Online (Sandbox Code Playgroud) 我目前正在研究有关使用Spring 4,Java 1.8和Gradle(https://spring.io/guides/gs/scheduling-tasks/)计划任务的示例。
但是,在运行此示例时,我收到以下错误:
错误:(11、8)Java:无法访问org.springframework.web.WebApplicationInitializer的org.springframework.web.WebApplicationInitializer类文件
我的Application.java的源代码如下:
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class);
}
}
Run Code Online (Sandbox Code Playgroud)
我的gradle文件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.2.RELEASE")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'war'
jar {
baseName = 'gs-scheduling-tasks' …
Run Code Online (Sandbox Code Playgroud) 我有一个构建列表的新方法,我希望它将列表的总和作为OptionalDouble值返回.
但是,当我使用Java 8计算总和值时,我总是将返回值作为Double.
我该如何转换?
Double to OptionalDouble
Run Code Online (Sandbox Code Playgroud)
以下是我的和计算代码:
private static OptionalDouble sumListValue() {
// Build list
List<Double> testList = new ArrayList<>();
testList.add(...);
...
...
return testList.stream().mapToDouble(value -> value).sum();
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
我目前有一个这样的if语句:
if (condition1 || condition2) {
//Do stuff here
//Small things happened here
//More stuff
if (condition1) {
System.out.println("Thank");
// Do Task Alpha
// Do Task Beta
} else {
System.out.println("You");
// Do Task Delta
// Do Task Gamma
}
}
Run Code Online (Sandbox Code Playgroud)
所以基本的想法是当任一条件为真时发生if语句(在我的情况下,两个条件不能同时为真).
但是,一旦在if语句中,有一个点,如果第一个条件为真,则打印"Thank"并执行Task Alpha和Beta.如果第二个条件为真,则打印"你"并执行任务Delta和Gamma.在我们达到这个分歧点之前,会执行许多常见的陈述.
这是编写整个if语句的最佳/最简单的方法吗?
谢谢.
java ×7
java-8 ×5
hibernate ×2
list ×2
optional ×2
spring-boot ×2
angular ×1
average ×1
database ×1
html5 ×1
if-statement ×1
java-stream ×1
javascript ×1
liquibase ×1
median ×1
mysql ×1
spring ×1
spring-mvc ×1
sum ×1