小编Cod*_*roc的帖子

如何在Visual Basic中使用互斥锁

我导入了这个kernel32库.所以,我有createMutex可用的功能,但我不太确定各种参数和返回值.

这是经典的Visual Basic,而不是Visual Basic.NET,但我可能会以答案的形式使用这两种语言.

vb6

21
推荐指数
2
解决办法
7731
查看次数

使用变量参数重载的方法(varargs)

看到这段代码的输出我感到很惊讶:

public class File
{
    public static void main(String[] args)
    {
        movie();
    }

    static void movie(double... x)
    {
        System.out.println("No varargs");
    }

    static void movie(int... x)
    {
        System.out.println("One argument");
    }
}
Run Code Online (Sandbox Code Playgroud)

它输出,

One argument
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

我认为这段代码不能编译,因为调用movie()模糊的,但运行正常并输出One argument.

如果我将代码修改为:

public class File
{
    public static void main(String[] args)
    {
        movie();
    }

    static void movie(boolean... x)  //Changed the parameter type to boolean from double
    {
        System.out.println("No varargs");
    }

    static void movie(int... x)
    {
        System.out.println("One argument");
    }
} …
Run Code Online (Sandbox Code Playgroud)

java overloading variadic-functions

15
推荐指数
2
解决办法
2267
查看次数

java嵌套if或single if

我对以下代码块(Sample)的执行存在基本疑问:

String version = computer.getSoundcard().getUSB().getVersion();
Run Code Online (Sandbox Code Playgroud)

NullPointerException如果Soundcard不存在,可能会抛出

所以我有 ,

选项1 :

if(computer!=null && 
        computer.getSoundCard() !=null && 
                 computer.getSoundCard().getUSB()!=null) {
   version = computer.getSoundcard().getUSB().getVersion();
}
Run Code Online (Sandbox Code Playgroud)

选项2:

if(computer !=null){
   SoundCard sc = computer.getSoundCard();
   if(sc!=null){
      USB usb = sc.getUSB();
      if(usb!=null){
         version = usb.getVersion();
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

根据我的理解,选项1将有额外的开销,因为它必须多次评估相同的表达式,如computer.getSoundCard() 3次,computer.getSoundCard().getUSB()2次.

我的理解是否正确?

编辑1:更改了选项2

version = computer.getSoundcard().getUSB().getVersion();
Run Code Online (Sandbox Code Playgroud)

java if-statement

15
推荐指数
2
解决办法
972
查看次数

我们可以在java中创建公共静态抽象类吗?

我在谷歌搜索的东西,我得到了一个类似的代码

public static abstract class LocationResult{
    public abstract void gotLocation(Location location);
}
Run Code Online (Sandbox Code Playgroud)

这是一个嵌套类,但想知道它是如何可访问的?

java

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

从字符串中删除无效字符(("\\ /:*?\"<> |"))以将其用作FileName

如何从String中删除无效字符,以便它可以用作文件名?
无效字符包括 ("\\/:*?\"<>|").

java string

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

为什么这个Java 8方法参考编译?

我正在深入探讨 Java 8 Lambda和方法参考等功能.玩了一下让我看到以下示例:

public class ConsumerTest {

  private static final String[] NAMES = {"Tony", "Bruce", "Steve", "Thor"};

   public static void main(String[] args) {
      Arrays.asList(NAMES).forEach(Objects::requireNonNull);
   }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

为什么main方法中的行会编译?

如果我理解正确的话,引用的方法的签名必须对应于功能接口的SAM签名.在这种情况下,消费者需要以下签名:

void accept(T t);
Run Code Online (Sandbox Code Playgroud)

但是,该requireNonNull方法返回T而不是void:

public static <T> T requireNonNull(T obj)
Run Code Online (Sandbox Code Playgroud)

java java-8 method-reference

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

呼叫等于(""); 单独编译并运行

我注意到调用equals("");类的方法不会产生任何错误Eclipse.我从来没有见过.equals没有像string1.equals(string2);.

package voodoo;

public class Equals {

    public void method(){
        equals("");
    }

}
Run Code Online (Sandbox Code Playgroud)

这里发生了什么,什么时候会equals()自己调用?

如果我把它放入JUnit测试中,它会运行并通过.

java equals

11
推荐指数
3
解决办法
692
查看次数

Java中的泛型

是否存在定义和使用泛型定义的简写方法,而不必继续重复特定的通用描述,以便如果有更改,我不必更改所有定义/用法,尽管代码库可能是这样的:

Typedef myGenDef = < Object1, Object2 >;

HashMap< myGenDef > hm = new HashMap< myGenDef >();

for (Entry< myGenDef > ent : hm..entrySet())
{
.
.
.
}
Run Code Online (Sandbox Code Playgroud)

java generics

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

为什么int j = 012给出输出10?

在我的实际项目中,这是偶然发生的,这是我修改过的小程序.

我无法弄清楚它为什么输出10

public class Int
{
    public static void main(String args[])
    {
        int j=012;//accidentaly i put zero 
        System.out.println(j);// prints 10??
    }
}
Run Code Online (Sandbox Code Playgroud)

在那之后,我把两个零仍然给出输出10.

然后我将012更改为0123,现在它输出83?

有谁能解释为什么?

java integer numbers literals

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

比较两个数组的任何类似值

我想比较两个数组,如果在两个数组上都可以找到至少一个值.

场景#1: 2在两个阵列中都找到,因此结果是true.

String[] x = {"1","2","3"};
String[] y = {"2","5","6"};
Run Code Online (Sandbox Code Playgroud)

场景#2:没有匹配的值,所以结果是false.

String[] x = {"1","2","3"};
String[] y = {"4","5","6"};
Run Code Online (Sandbox Code Playgroud)

Java中是否有任何内置方法,或任何可以处理此要求的库?

我想强调一下,我正在寻找一个Java库或任何可以开箱即用的Java方法.

Collection.contains不是一个选项,因为两个数组中的所有值都应该相同才能返回true.(如果两个数组中至少有一个值相似,我需要返回true)

java comparison compare

10
推荐指数
3
解决办法
6442
查看次数