小编mus*_*ibs的帖子

为什么EnumSet有很多重载的"方法"?

在浏览EnumSet<E> of方法时,我看到了多个of方法的重载实现:

public static <E extends Enum<E>> EnumSet<E> of(E e)

public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2)

.
.

public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4, E e5)
Run Code Online (Sandbox Code Playgroud)

然后用另一个重载方法 varargs

public static <E extends Enum<E>> EnumSet<E> of(E first, E... rest) {
    EnumSet<E> result = noneOf(first.getDeclaringClass());
    result.add(first);
    for (E e : rest)
        result.add(e);
    return result;
}
Run Code Online (Sandbox Code Playgroud)

当这个varargs可以处理其他实现时,为什么这个方法会以这种方式重载?这有什么具体原因吗?

我曾经历过同样的Javadoc,但我找不到任何令人信服的解释.

java collections enumset

33
推荐指数
4
解决办法
1135
查看次数

了解Java中的静态变量初始化

public class InstanceBuilder {

    private static final InstanceBuilder INSTANCE = new InstanceBuilder();

    private static String name = null;

    private InstanceBuilder() {
        System.out.println("Setting cons()");
        name = "Testing";
    }

    public static String getName() {
        return name;
    }
}

public class Driver {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("value is " + InstanceBuilder.getName());
    }

}
Run Code Online (Sandbox Code Playgroud)

输出:

Setting cons()
value is null
Run Code Online (Sandbox Code Playgroud)

为什么它打印值,null即使我static在构造函数中设置了变量并按预期调用它.如果我尝试在构造函数中打印,它是打印Testing,但如果我从public static方法调用,它是null.我知道如果我改变它INSTANCE.name,它的工作原理.但我想理解为什么如果我直接访问static变量它不起作用,因为应该共享相同的副本.我在这里缺少什么?

java

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

如何使用 SQL Developer 连接到启用 SSL 的 Oracle 数据库

我正在尝试通过 SQL Developer 连接到 Oracle 数据库。我们的数据库启用了 SSL,并使用 TCPS 运行。在 SQL Developer 中,我找不到任何可以配置 SSL 参数的选项。

SQL 开发人员是否支持连接到启用 SSL 的数据库?如果是,如何。我对此进行了很多搜索,但找不到任何相关的解决方案。

oracle oracle-sqldeveloper

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

具有静态内部类和双重检查锁定的单例

我正在阅读关于Singleton设计模式和评估不同的实现.我怀疑以下的实现:

A.使用静态内部类的单例实现

public class SingletonWithStaticClass {

private SingletonWithStaticClass(){}

private static class SingletonInnerClass{
    public static SingletonWithStaticClass INSTANCE = new SingletonWithStaticClass();

}

public static SingletonWithStaticClass getInstance(){
    return SingletonInnerClass.INSTANCE;
}
Run Code Online (Sandbox Code Playgroud)

}

B. Singleton双重检查锁定

public class SingletonWithDoubleCheck {
private static SingletonWithDoubleCheck INSTANCE = null;

private SingletonWithDoubleCheck(){
    if(INSTANCE != null){
        throw new RuntimeException("Accessing private constructor is prohibited. Use getInstance method instead");
    }
}

public static SingletonWithDoubleCheck getInstance(){
    if(INSTANCE == null){
        synchronized (SingletonWithDoubleCheck.class) {
            if(INSTANCE == null){
                INSTANCE = new SingletonWithDoubleCheck();
            }
        }
    }
    return INSTANCE; …
Run Code Online (Sandbox Code Playgroud)

java singleton design-patterns

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

条件是否为每个对象提供多个等待集?

我正在阅读有关条件的信息java.util.concurrent.locks.Condition.

条件因素将对象监视器方法(wait,notify和notifyAll)>分解为不同的对象,以通过将它们与使用任意的Lock实现相结合来实现每个对象具有多个等待集的效果.

有人可以解释一下吗?

这比普通同步块或方法有什么好处?

java multithreading conditional-statements reentrantlock

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

MQ消息头中的用户标识的缺省值

在我的应用程序中,我将消息发送到Websphere MQ队列.在应用程序中,用户可以灵活地在消息中设置用户ID.但是我的问题是,因为参数在我的应用程序中是可配置的,如果用户没有设置它,那么将从哪里获取值?

我已经浏览了下面的链接,但是如果未在应用程序级别设置,则不清楚将为用户标识设置什么值.

  1. http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.0.1/com.ibm.mq.csqzaw.doc/jm41030_.htm

  2. 如何通过JMS API设置MQMD ApplicationID字段?

任何帮助表示赞赏.

identity userid ibm-mq

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

将文件从 ISO 8859-6 转换为 UTF-8 后无法看到阿拉伯字符

在我的应用程序中,我正在读取一个包含一些阿拉伯字符(编码为ISO 8859-6)的文件,我正在将其转换为UTF-8编码并使用BufferedWriter. 但是,在我新生成的文件中,我看不到阿拉伯字符,而是出现了几个问号。

来自我的原始文件的片段

Sample Data//????
Another line,
One more line/????
Run Code Online (Sandbox Code Playgroud)

来自生成文件的片段

 Sample Data//????
 Another line,
 One more line/????
Run Code Online (Sandbox Code Playgroud)

我正在使用以下方法进行转换:

private String convertCharSet(String data, String sourceCharacterCode, String destinationCharacterCode) throws UnsupportedEncodingException
{
        Charset charsetSource = Charset.forName(sourceCharacterCode);
        Charset charsetDestination = Charset.forName(destinationCharacterCode);
        ByteBuffer inputByteBuffer = ByteBuffer.wrap(data.getBytes(sourceCharacterCode));
        CharBuffer charBuffer = charsetSource.decode(inputByteBuffer);
        ByteBuffer outputByteBuffer = charsetDestination.encode(charBuffer);
        return new String(outputByteBuffer.array(), destinationCharacterCode);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下方法写入文件

public static void writeToFile(String filePath, String data) throws IOException
{
    BufferedWriter out = null;
    try
    {
        out …
Run Code Online (Sandbox Code Playgroud)

java utf-8 character-encoding

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