小编Luk*_*uke的帖子

如何在jdk 9、10和11中使用Java配置DNS服务器

为了进行测试,我们有一个DNS服务器,该服务器将响应虚拟记录。以前,我们可以通过以下方式使java使用我们的DNS服务器(此处仅使用本地主机):

"-Dsun.net.spi.nameservice.nameservers=127.0.0.1",
"-Dsun.net.spi.nameservice.provider.1=dns,sun",
Run Code Online (Sandbox Code Playgroud)

这在jdk11下不再起作用。是否可以指定在jdk11下使用的DNS服务器?如果可以,怎么办?

编辑:我也尝试过:

-Djava.naming.provider.url=dns://127.0.0.1
Run Code Online (Sandbox Code Playgroud)

来自https://github.com/AdoptOpenJDK/openjdk-jdk11/blob/master/src/jdk.naming.dns/share/classes/com/sun/jndi/dns/DnsContextFactory.java,但这也不起作用。

java dns java-9 java-11

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

当类只包含 JUnit4 注释时,使 Eclipse 默认为 JUnit4 而不是 JUnit5

最近的 groovy 升级带来了 JUnit5,导致 Eclipse 想要在 JUnit5 下运行每个测试。我可以通过运行配置并告诉 Eclipse 使用 JUnit4 来解决这个问题,但这会变得乏味。

是否可以告诉 Eclipse 始终将 JUnit4 用于特定项目,包括新测试?

java eclipse groovy junit4 junit5

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

使用 Java doc API 从 DeclaredType/TypeMirror 获取限定类型

我有一个DeclaredType字段,我想获得该字段的完全限定类型(原始类型?)。例如,如果该字段是:

public static Optional<String> foo;
Run Code Online (Sandbox Code Playgroud)

我想得到java.util.Optional

目前我可以通过以下方式获取包名称:

env.getElementUtils().getPackageOf(declaredType.asElement());
Run Code Online (Sandbox Code Playgroud)

然而,我回来了同样的问题我结束了一个我能得到的那种类型参数ListTypeMirror,我不知道怎么弄类型的限定名。

我注意到我可以打电话TypeMirror#toString()并且会返回(对于上述)类似的东西:

java.util.Optional<java.lang.String>
Run Code Online (Sandbox Code Playgroud)

我想我可以把前面的所有东西都剪掉,<但这感觉就像一个黑客。

作为参考,这是我获取该字段的方式:

private VariableElement getFieldWithName(DocletEnvironment environment, TypeElement classDoc, String fieldName) {
    for(VariableElement e : ElementFilter.fieldsIn(environment.getElementUtils().getAllMembers(classDoc))) {
        if(e.getSimpleName().toString().equals(fieldName)) {
            return e;
        }
    }
    return null;
}

TypeElement classElement = env.getElementUtils().getTypeElement(MyClass.class.getCanonicalName());
VariableElement fieldDoc = getFieldWithName(env, classElement, "foo");
DeclaredType declaredType = (DeclaredType) fieldDoc.asType();
Run Code Online (Sandbox Code Playgroud)

java javadoc java-11

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

如何在编译时告诉eclipse添加导出

是否可以告诉eclipse添加以下命令行选项: --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED 编译时.

我认为在运行测试时也可能需要它.

是否也可以删除此消息: 在此输入图像描述

请注意,我尝试将这些添加到我的一个单元测试的VM选项中,但这不起作用.

java eclipse javac java-9

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

升级到jetty 9.4替换HashSessionManager

升级到jetty 9.4之后,我注意到了一个ClassNotFoundException org.eclipse.jetty.server.session.HashSessionManager.我想我需要使用一个,FileSessionDataStore但我不知道这是怎么设置的SessionHandler.

我目前的配置是:

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    ...
    <Set name="sessionHandler">
        <New class="org.eclipse.jetty.server.session.SessionHandler">
            <Arg> 
                <New class="org.eclipse.jetty.server.session.HashSessionManager">
                    <Set name="storeDirectory">my/store/path</Set>
                </New>
            </Arg>
        </New>
    </Set>
</Configure>
Run Code Online (Sandbox Code Playgroud)

我没有看到我需要做什么,SessionHandler没有拿a SessionDataStore,但是SessionCache可以设置它,但它看起来像是在构造函数中SessionCache想要的实现SessionHandler,我不知道如何在XML中这样做.

jetty jetty-9

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

std:hash 可以访问类的私有成员

我想散列一个具有两个私有成员的类,例如:

foo.h

class Foo {
    private:
        std::string a;
        std::string b;

    public:
        Foo (std::string a, std::string b);
        bool operator==(const Foo& other) const;
        bool operator!=(const Foo& other) const;
        std::size_t operator()(const Foo& ) const;
};

namespace std {
    template <> struct hash<Foo> {
        std::size_t operator()(const Foo& cp) const;
    };
}
Run Code Online (Sandbox Code Playgroud)

文件

Foo::Foo (std::string _a, std::string _b) {
    this->a = _a;
    this->b = _b;
}

bool Foo::operator== (const Foo& other) const {
    return this->a == other.a && this->b == other.b;
}

bool Foo::operator!= (const …
Run Code Online (Sandbox Code Playgroud)

c++ stdmap stdset c++11 stdhash

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

标签 统计

java ×4

eclipse ×2

java-11 ×2

java-9 ×2

c++ ×1

c++11 ×1

dns ×1

groovy ×1

javac ×1

javadoc ×1

jetty ×1

jetty-9 ×1

junit4 ×1

junit5 ×1

stdhash ×1

stdmap ×1

stdset ×1