小编E2r*_*abi的帖子

如何使用Java屏蔽十六进制int?

我有一个包含hexa值的整数.我想从这个hexa值中提取第一个字符,就像它是一个String值,但我不想将它转换为String.

int a = 0x63C5;
int afterMask= a & 0xFFF;
System.out.println(afterMask); // this gives me "3C5" but I want to get the value "63C" 
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我不能使用像substring.

java hex

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

使用peek和findAny在Java Stream结果上感到困惑

我是Java的Stream API的新手,我对这个案例的结果感到困惑:

Stream<String> stream = Stream.of("A","B","C","D");
System.out.println(stream.peek(System.out::println).findAny().get());
Run Code Online (Sandbox Code Playgroud)

这打印:

A
A
Run Code Online (Sandbox Code Playgroud)

为什么不打印:

A
A
B
B
C
C
D
D
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

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

异常之间的Java持续时间

我使用java Duration between方法计算到LocalTime和LocalDateTime之间的持续时间,当我将localTime用作该方法的第一个参数时,它起作用了,但是当我颠倒顺序时,它给出了DateTimeException异常:

这项工作很好:

 LocalTime t1 = LocalTime.now();
 LocalDateTime t2 = LocalDateTime.now();
 System.out.println(Duration.between(t1, t2));
Run Code Online (Sandbox Code Playgroud)

当我扭转农业生产时,它给了我一个例外:

 LocalTime t1 = LocalTime.now();
 LocalDateTime t2 = LocalDateTime.now();
 System.out.println(Duration.between(t2, t1));

Exception in thread "main" java.time.DateTimeException: Unable to obtain LocalDateTime from TemporalAccessor: 16:32:18.553 of type java.time.LocalTime
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么我得到这个异常感谢您的帮助:=)

java time java-8

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

Stream reduce vs Stream.parallel.reduce()

我试图理解为什么这个例子的结果总是如此,这是我的例子:

 String s1 = Arrays.asList("A", "E", "I", "O", "U").stream()
                .reduce("", String::concat);
 String s2 = Arrays.asList("A", "E", "I", "O", "U").parallelStream()
                .reduce("", String::concat);

System.out.println(s1.equals(s2));
Run Code Online (Sandbox Code Playgroud)

这总是打印true,我所知道的是使用 parallelStream 我们无法预测结果有人可以解释为什么吗?

java collections reduce java-8 java-stream

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

Angular 5 - Observable 返回错误无法读取未定义的属性

当我使用httpClient调用我的 Web 服务时,我开始在我的 Angular 服务中使用 Spring Rest 和 Angular 5 实现一个简单的分页,并获得对请求页面的正确响应,它在我的页面上正确显示数据,但控制台 Web 出现错误浏览器发现我的*ngFor循环中出现错误无法读取 undefined 的属性,尽管模板显示结果正确:

问题出在 Service 方法中:getPageClient() 和 *ngFor 指令这是我的错误日志: 在此处输入图片说明

这是我使用 observable 的服务:

import { Injectable } from '@angular/core';
import {Client} from '../models/Client'
import {PageClient} from '../models/PageClient'
import { Observable, of } from 'rxjs';
import { HttpClient,HttpHeaders } from '@angular/common/http';
import {catchError,map,tap} from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class ClientService {

  private url = 'http://localhost:8099/api/clients';

  private urlPage = 'http://localhost:8099/api/clients/get?page=0&size=3';

  getClient(): Observable<Client[]>{
     return this.http.get<Client[]>(this.url)
      .pipe( …
Run Code Online (Sandbox Code Playgroud)

javascript angular angular-observable angular4-httpclient

3
推荐指数
1
解决办法
1436
查看次数

在这个例子中,混淆了ConcurrentHashMap和HashMap行为之间的区别

我试图了解ConcurrentHashMap的工作原理.我找到了一个例子,但我无法理解它.这是它的代码:

Map<String, Object> myData = new HashMap<String, Object>();
myData.put("A", 1);
myData.put("B", 2);
for (String key : myData.keySet()) {
    myData.remove(key);
}
Run Code Online (Sandbox Code Playgroud)

这将ConcurrentModificationException在运行时抛出异常.

但是,此代码使用ConcurrentHashMap将正常工作:

Map<String, Object> myData = new ConcurrentHashMap<String, Object>();
myData.put("A", 1);
myData.put("B", 2);
for (String key : myData.keySet()) }
    myData.remove(key);
}
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释为什么ConcurrentHashMap允许在HashMap抛出异常时删除键吗?谢谢

java java.util.concurrent java-8

3
推荐指数
1
解决办法
74
查看次数

尝试使用资源为什么不能修改资源

我尝试将参考扫描的值设置为null时发现无法编译的try资源示例

try(Scanner scan = new Scanner(System.in)) {
    String s = scan.nextLine();
    System.out.println(s);
    scan = null;
}
Run Code Online (Sandbox Code Playgroud)

我问这个编译错误背后的规则是什么,我在网上做了一些搜索,但是没有找到解释它的规则。谢谢您的解释:=)

java try-catch variable-assignment java-8 try-with-resources

3
推荐指数
1
解决办法
72
查看次数

Spring引导无法识别我的Jpa存储库不是托管类型:类java.lang.Long

我正在使用spring数据jpa和lombok创建一个简单的spring启动应用程序,但是当我添加基于JPARepository的repositoiry类并启动我的应用程序时,我得到了创建我的存储库类的错误,这是异常:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'projetRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: class java.lang.Long
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1702) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:579) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:501) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:741) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869) ~[spring-context-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at com.errabi.glsid.SurveyBuilderApplication.main(SurveyBuilderApplication.java:14) [classes/:na]
Caused by: java.lang.IllegalArgumentException: Not a managed …
Run Code Online (Sandbox Code Playgroud)

java lombok spring-data-jpa spring-boot

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

我如何组合两个Set Inside HashMap java的值

我在一个hashmap里面有两个Set,我希望在另一个Set中合并那些值:

for (Map.Entry<String, HashSet<String>> entry : myhashmap.entrySet()) {
  // in the first iteration  entry.getValue() give me elementValues1 Set
  // and the second give elementValues2 
}
Run Code Online (Sandbox Code Playgroud)

例如,我在第一次迭代中的第一个HashSet包含这些值:A, B.

喜欢 :

Set<String> elementValues1 = new HashSet<String>();
elementValues1.add("A");
elementValues1.add("B");
Run Code Online (Sandbox Code Playgroud)

我在第二次迭代中的第二个Set包含:C, D.

喜欢 :

Set<String> elementValues2 = new HashSet<String>();
elementValues2.add("C");
elementValues2.add("D");
Run Code Online (Sandbox Code Playgroud)

我想在循环中创建另一个组合两个Set的值:Like:

Set<String> elementValues3 = new HashSet<String>();
Run Code Online (Sandbox Code Playgroud)

elementValues3 应包含:AC AD BC BD

有人可以帮我解决这个问题,提前谢谢

java algorithm collections for-loop hashmap

0
推荐指数
2
解决办法
127
查看次数

为什么 Angular HTTPClient 在这种情况下重复其余调用两次?

我有一个使用 Rest API 的 Angular 服务,但是当我检查网络和后端时,我发现 API 每次都调用了两次:

这是我的服务代码:

getAllUsers():Observable<any>{
    return this.http.get(this.mainConfigService.getUsersUrl()).pipe(
        map(this.extractData));
}

private extractData(res: Response) {
        let body = res;
        return body || { };
}
Run Code Online (Sandbox Code Playgroud)

在我的组件中,我调用了这个服务:

  getAllUser(){
    let users : User[] = [];
    this.userService.getAllUsers().subscribe(data=>{
      this.usersList=data;
      data.forEach( (element) => {
        users.push(
               {
                fullName: element.fullName,
                firstName:element.firstName,
                lastName:element.lastName,
                mail:element.mail,
                idNumber:element.idNumber,
                accountExpiresDateTime:element.accountExpiresDateTime,
                role:element.role
             }
             );
      });
      this.dataSource = new MatTableDataSource(users);
      this.dataSource.paginator = this.paginator;
      this.dataSource.sort = this.sort;
    },err=>{
      this.handleError(err)
    })
  }
Run Code Online (Sandbox Code Playgroud)

在控制台中,我看到 API 调用了两次,即使我调用 getAllUser() 的唯一地方是在 Init 方法中

在此处输入图片说明

我仍然无法找到这个问题的原因

javascript httpclient rxjs angular

0
推荐指数
1
解决办法
3625
查看次数