如何在流的map函数中使用多个条件?我是 Java 流的新手,实际上我想在流映射中使用多个条件,例如:
List<String> cs = Arrays.asList("agent", "manager", "admin");
List<String> replace = cs.stream()
.map(p -> p.equals("agent") ? "manager" : p || p.equals("manager") ? "agent" : p )
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我想要的是用经理代替代理人,用代理人代替经理。也就是说,如果列表中存在代理,则将其替换为经理,如果经理存在,则将其替换为代理。
我正在 JavaFx 中开发一个应用程序,其中有两个选项卡。
在第一个选项卡中,我有 ComboBox:
在第二个选项卡中,我有这样的 Gridpane:
我想要的是当用户从 Tab A 的组合框中选择 let say 3 时,例如:
它应该向 Tab B 的 Gridpane 添加 3 行,每列添加文本字段、复选框和日期选择器。A 列具有文本字段,B 列具有复选框,C 列具有 DatePicker,如下所示:
请帮助我如何实现这一点,并在实现之后如何访问每个文本字段、复选框和日期选择器的数据。
更新:尝试用 FXML 做 @Yahya 解决方案
主程序
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
TabPane root = (TabPane)FXMLLoader.load(getClass().getResource("Sample.fxml"));
Scene scene = new Scene(root,400,400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Run Code Online (Sandbox Code Playgroud)
示例控制器.java
public class SampleController …Run Code Online (Sandbox Code Playgroud) 我正在开发一个我正在使用Java8 Time的应用程序.我正面临一个问题.
假设时间A是08:00,时间B是17:00,所以这两次之间的差异将是9h,在我的情况下是正确的,但如果时间A是18:00而时间B是02:00它应该是8h,但在我的情况下我的程序返回-16.请有人指导我如何解决这个问题.
我的代码:
@Test
public void testTime()
{
DateTimeFormatter format = DateTimeFormatter.ofPattern("HH:mm");
String s = "18:00";
String e = "02:00";
// Parse datetime string to java.time.LocalDateTime instance
LocalTime startTime = LocalTime.parse(s, format);
LocalTime endTime = LocalTime.parse(e, format);
String calculatedTime = ChronoUnit.HOURS.between(startTime, endTime)%24 + ":"
+ ChronoUnit.MINUTES.between(startTime, endTime)%60;
System.out.println(calculatedTime);
}
Run Code Online (Sandbox Code Playgroud) 大家好,我是 Spring 世界的新手。其实我想知道如何使用转换器来更新对象,而不是使用 set 和 get 来一一更新每个元素。现在在我的控制器中我有:
@PostMapping("/edit/{userId}")
public Customer updateCustomer(@RequestBody Customer newCustomer, @PathVariable final String userId)
{
return customerService.update(userId, newCustomer);
}
Run Code Online (Sandbox Code Playgroud)
这就是我更新客户对象的方式:
@Override
public Customer update(String id, Customer newCustomer) {
Customer customer = customerRepository.findById(id).get();
customer.setFirstName(newCustomer.getFirstName());
customer.setLastName(newCustomer.getLastName());
customer.setEmail(newCustomer.getEmail());
return customerRepository.save(customer);
}
Run Code Online (Sandbox Code Playgroud)
我不想使用每次设置和获取,而是使用转换器。
我正在尝试使用 impex 导入产品,但脚本不起作用我不明白为什么。这是我的脚本:
insert TaxRow ; &Item ; catalogVersion(catalog(id),version) ; creationtime[forceWrite=true,dateformat=dd.MM.yyyy hh:mm:ss] ; currency(isocode) ; endTime[dateformat=dd.MM.yyyy hh:mm:ss] ; modifiedtime[dateformat=dd.MM.yyyy hh:mm:ss] ; owner(&Item)[allownull=true] ; pg(code,itemtype(code)) ; product(catalogVersion(catalog(id),version),code) ; productId[forceWrite=true] ; productMatchQualifier ; startTime[dateformat=dd.MM.yyyy hh:mm:ss] ; tax(code)[allownull=true,forceWrite=true] ; ug(code,itemtype(code)) ; user(uid) ; userMatchQualifier ; value
; Item0 ; hybrisProductCatalog:Staged ; 18.02.2019 04:00:18 ; ; ; 18.02.2019 04:00:18 ; ; standard:ProductTaxGroup ; ; ; 8 796 129 198 171 ; ; standard ; ; ; 0 ;
; Item1 ; hybrisProductCatalog:Staged ; 30.05.2017 …Run Code Online (Sandbox Code Playgroud) 我想检查目标时间是否在两个给定时间之间,而不考虑使用Java8时间的日期.假设开始时间是"21:30",结束时间是"06:30",目标时间是"03:00",所以程序应该返回true.
@Test
public void posteNuit()
{
DateTimeFormatter format = DateTimeFormatter.ofPattern("HH:mm");
String s = "21:30";
String e = "06:30";
String t = "03:00";
LocalTime startTime = LocalTime.parse(s, format);
LocalTime endTime = LocalTime.parse(e, format);
LocalTime targetTime = LocalTime.parse(t, format);
if ( targetTime.isBefore(endTime) && targetTime.isAfter(startTime) ) {
System.out.println("Yes! night shift.");
} else {
System.out.println("Not! night shift.");
}
}
Run Code Online (Sandbox Code Playgroud) 我将一个数组设置为等于另一个
orders = [
{
'id': PROCESSING,
'displayName': 'Processing'
},
{
'id': SHIPPED,
'displayName': 'Shipped'
}
];
cloneOrders = [];
setOrders() {
this.orders.forEach((order: any) => {
this.cloneOrders = order;
});
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在另一个函数中获取“ cloneOrders”的值时,它将返回一个空数组
getOrders(status, minutes) {
this.cloneOrders .forEach((order: any) => {
console.log(order);
});
}
Run Code Online (Sandbox Code Playgroud)
两种功能都在同一组件中。请帮助我如何解决此感谢。
/**
* Send Button click event.
**/
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
NetAsync(view);
}
});
}
Run Code Online (Sandbox Code Playgroud)
在点击事件中,"NetAsync(视图)"执行并将gps坐标发送到服务器,但我想要的是,当用户启动应用程序"NetAsync(view)"时,每10分钟后自动执行,而不是使用按钮点击事件.请告诉我如何做到这一点,因为我是Android编程的新手.
java ×6
java-8 ×3
java-time ×2
spring ×2
time ×2
android ×1
angular ×1
hybris ×1
impex ×1
import ×1
java-stream ×1
javafx ×1
javafx-2 ×1
javafx-8 ×1
localtime ×1
spring-boot ×1
spring-mvc ×1
typescript ×1