我使用LetsEncrypt的CertBot免费生成PEM文件.在其他语言中,只需使用几行代码和PEM /密钥文件即可轻松启动HTTPS服务器.到目前为止我在java中找到的解决方案过于复杂,我正在寻找更简单的东西.
有没有更好/更简单的方法来做到这一点?
伙计们 - 我在尝试从我的MAC卸载JDK时面临挑战(macOS High Sierra版本10.13.4 - 17E199).我安装了两个JDK实例,我想卸载它们.
我按照此页面上列出的步骤操作:https://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html
我试图在/ Library/Java/JavaVirtualMachines目录中运行此命令,该目录抛出一个我没有权限的错误.
rm -rf jdk1.8.0_06.jdk
Run Code Online (Sandbox Code Playgroud)
我是该机器的管理员,我不确定我还需要什么权限.我作为管理员和root用户尝试没有成功.
请分享您对此的看法.
我下载了Oracle SQLDeveloper,但是当我打开它时,它说它需要最少的Java 8并且给了我下载的网站.我继续下载Java 10.0.1,但当我重新打开SQL时,它继续说它需要最少的Java 8.
我检查了Java 10.0.1已经正确安装,我很确定它有.它显示在"系统偏好设置"中,单击此按钮可以打开Java控制面板.
我还发现有人建议尝试这个命令:
c:\Program Files\Oracle\sqlcl\17.3\sqlcl\bin>java -version
Run Code Online (Sandbox Code Playgroud)
在终端尝试这个之后,我最终得到了command not found.
我在MacOS X El Captain 10.11.6上.
我们希望将所有生产服务从Java 8迁移到Java 10.据我所知,我们可能会面临构建(gradle等),依赖等问题以进行开发.但是当它只是JVM本身,即运行服务时,如果我们只是在生产中安装JVM 10来运行我们的jar服务,我们是否会遇到任何问题?
任何人都可以指向官方Java文档,该文档描述了Stream将为每个元素调用每个"非干扰和无状态"中间操作的次数.
例如:
Arrays.asList("1", "2", "3", "4").stream()
.filter(s -> check(s))
.forEach(s -> System.out.println(s));
public boolean check(Object o) {
return true;
}
Run Code Online (Sandbox Code Playgroud)
以上目前将调用check方法4次.
是否有可能在JDK的当前版本或未来版本中,该check方法的执行次数多于或少于从List或任何其他标准Java API创建的流中的元素数量?
我遇到了一个问题:
我创建了这个我需要映射到的流Map<String, Object>:
private Map<String, Object> collectArguments(JoinPoint point) {
CodeSignature signature = (CodeSignature) point.getSignature();
String[] argNames = signature.getParameterNames();
Object[] args = point.getArgs();
return IntStream.range(0, args.length)
.collect(Collectors.toMap(param -> argNames[param], param -> args[param]));
}
Run Code Online (Sandbox Code Playgroud)
我收到以下消息,我不太清楚:
[Java] Type mismatch: cannot convert from Collector<Object,capture#3-of ?,Map<Object,Object>> to Supplier<R>
Run Code Online (Sandbox Code Playgroud) 我有一个Photo对象:
public class Photo {
@Id
private String id;
private LocalDateTime created;
private Integer poNumber;
}
Run Code Online (Sandbox Code Playgroud)
对于某些照片或集合中的所有照片,poNumber可以为null.我想根据poNumber对一组照片进行排序,以便最低的poNumber首先出现在排序集中.poNumber也可以在集合中重复.如果poNumber重复,则根据创建的排序(首先显示最早创建的照片).如果poNumber为null,则根据created进行排序.
我尝试了下面的代码:
Set<Photo> orderedPhotos = new TreeSet<>(
Comparator.nullsFirst(Comparator.comparing(Photo::getPoNumber))
.thenComparing(Photo::getCreated));
for (Photo photo : unOrderedPhotos) {
orderedPhotos.add(photo);
}
Run Code Online (Sandbox Code Playgroud)
但是NullPointerException只要poNumber为null,它就会抛出一个.如果poNumber不为null,那么它可以正常工作.我该如何解决这个问题?
示例中使用的对象来自包 org.jsoup.nodes
import org.jsoup.nodes.Attribute;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
Run Code Online (Sandbox Code Playgroud)
我需要按键的组属性和结果值Set.
Optional<Element> buttonOpt = ...;
Map<String, Set<String>> stringStringMap =
buttonOpt.map(button -> button.attributes().asList().stream()
.collect(groupingBy(Attribute::getKey,
mapping(attribute -> attribute.getValue(), toSet()))))
.orElse(new HashMap<>());
Run Code Online (Sandbox Code Playgroud)
它似乎正确收集,但值始终是单个字符串(因为库实现)包含按空格分割的不同值.试图改善解决方案:
Map<String, Set<HashSet<String>>> stringSetMap = buttonOpt.map(
button -> button.attributes()
.asList()
.stream()
.collect(groupingBy(Attribute::getKey,
mapping(attribute ->
new HashSet<String>(Arrays.asList(attribute.getValue()
.split(" "))),
toSet()))))
.orElse(new HashMap<>());
Run Code Online (Sandbox Code Playgroud)
结果我有不同的结构,Map<String, Set<HashSet<String>>>但我需要Map<String, Set<String>>
我已经检查了一些收藏家,但没有解决我的问题.
如何合并与相同属性键相关的所有集合?
我的方法之一中有以下代码
ZonedDateTime current = Instant.now().atZone(ZoneId.of(AMERICA_NEW_YORK));
Run Code Online (Sandbox Code Playgroud)
我想current在 JUnit 测试中进行模拟。
我尝试过,java.time.Clock但为此,我需要将其添加到类构造函数中,因为我的代码写入旧版本的 Spring 并使用基于 XML 的配置,此类会导致问题,因为它需要 application-context.xml 文件中的构造函数参数,如果我使用构造函数与Clock.
有没有办法避免current上面代码中的构造函数配置和模拟。
更新
根据帕维尔·斯米尔诺夫的评论,我在下面尝试过,但current仍然返回今天的日期,但不是我嘲笑的日期。
ZonedDateTime exactOneDay = ZonedDateTime.parse("Sun Oct 21 12:30:00 EDT 2018", Parser);
doReturn(exactOneDay).when(spyEmployeeHelper).getCurrentTime();
employee = getEmployees().get(0);
assertEquals(Integer.valueOf(1), employee.getNoticePeriod());
Run Code Online (Sandbox Code Playgroud) 这有什么目的吗 static @NotNull @Other My.@NotNull @Other Builder createBuilder()
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
public class A {
static class My {
static class Builder {
public My build() {
return new My(); } } }
@Target({ElementType.METHOD, ElementType.TYPE_USE})
public @interface NotNull { }
@Target({ElementType.METHOD, ElementType.TYPE_USE})
public @interface Other { }
public static @NotNull @Other My.@NotNull @Other Builder createBuilder() {
return new My.Builder();
}
}
Run Code Online (Sandbox Code Playgroud) java ×10
java-8 ×10
java-stream ×3
java-10 ×2
macos ×2
annotations ×1
collectors ×1
comparator ×1
https ×1
junit ×1
jvm ×1
lambda ×1
lets-encrypt ×1
oracle ×1
ssl ×1