相关疑难解决方法(0)

为什么空投?

我在某处看到了这段代码并且想知道:何时以及为什么有人会做以下事情:

doSomething( (MyClass) null );
Run Code Online (Sandbox Code Playgroud)

你有没有这样做过?你能分享一下你的经历吗?

java null

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

Java数组参数声明语法"..."如何工作?

我已经写了一段时间的java,今天我遇到了以下声明:

public static void main(String... args) {

}
Run Code Online (Sandbox Code Playgroud)

注意数组声明中的"点点点",而不是通常的括号[].显然它有效.事实上,我写了一个小测试,并验证它的工作原理.所以,我拉了java语法,看看这个参数声明的语法在哪里,但没有找到任何东西.

所以对那里的专家来说,这是如何工作的?它是语法的一部分吗?另外,虽然我可以像这样声明函数,但是我不能像这样在函数体内声明一个数组.

无论如何,你知道任何有这个记录的地方.这是好奇心,也许不值得投入任何时间,但我很难过.

java arrays declaration

51
推荐指数
5
解决办法
5万
查看次数

'String ...'是什么意思?

在代码中:

public interface ProductInterface {

    public List<ProductVO> getProductPricing(ProductVO product, ProductVO prodPackage, String... pricingTypes) throws ServiceException;

}
Run Code Online (Sandbox Code Playgroud)

是什么

String... pricingTypes
Run Code Online (Sandbox Code Playgroud)

意思?这是什么类型的构造?

java language-construct

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

Java方法总和任意数量的int

我需要编写一个java方法sumAll(),它接受任意数量的整数并返回它们的总和.

sumAll(1,2,3) returns 6
sumAll() returns 0
sumAll(20) returns 20
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做.

java sum

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

变量对象数组与对象数组 - 试图理解SCJP自测问题

我无法理解这个问题,并解释了SCJP 1.6自测问题的答案.这是问题所在:

class A { }
class B extends A { }
public class ComingThru {
    static String s = "-";
    public static void main(String[] args) {
        A[] aa = new A[2];
        B[] ba = new B[2];
        sifter(aa);
        sifter(ba);
        sifter(7);
        System.out.println(s);
    }
    static void sifter(A[]... a2) { s += "1"; }
    static void sifter(B[]... b1) { s += "2"; }
    static void sifter(B[] b1) { s += "3"; }
    static void sifter(Object o) { s += "4"; }
}
Run Code Online (Sandbox Code Playgroud)

结果是什么?答案是-434,但让我失望的是这本书的解释.它与本章前面解释的概念有很大不同. …

java scjp variadic-functions

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

对象是什么意思?

可能的重复:
Java中的"......"是什么意思?
Java数组参数"声明"语法

任何人都可以确认我是否正确看到Object...下面方法调用中的参数:

public static void setValues(PreparedStatement preparedStatement, Object... values)
    throws SQLException
{
    for (int i = 0; i < values.length; i++) {
        preparedStatement.setObject(i + 1, values[i]);
    }
}    
Run Code Online (Sandbox Code Playgroud)

作为Object类型的数组?我不记得...之前在Java中看过.

java arrays

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

Java找不到方法main

我有一个简单的你好世界计划的麻烦哈哈!我希望有人可以对此有所了解.

所以收到的错误如下:

$ javac Hello.java
$ java Hello
Exception in thread "main" java.lang.NoSuchMethodError: main
Run Code Online (Sandbox Code Playgroud)

因此,通过错误,我可以看到它显然缺少主要,但它在那里:

class Hello
{
  public static void main(String argv)
  {
    System.out.println("hello world");
  }
}
Run Code Online (Sandbox Code Playgroud)

如果有任何帮助,我在Mac OS/X上.

java

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

鉴于Java对可变参数的有限启示,它们有什么好处?

我来自C(++)背景,我对Java的主要兴趣是Android开发.对我来说,这似乎是一个显而易见的问题,但我还没有发现它在任何地方都得到了解决(我确实搜索了stackoverflow并谷歌).我找到的是很多评论,例如:

public String foo(String key, Object[] parameters) {..}

and
Run Code Online (Sandbox Code Playgroud)

public String foo(String key, Object... parameters) {..}

are equal
Run Code Online (Sandbox Code Playgroud)

实际上,"Varargs"的java文档明确指出"最后一个参数类型之后的三个句点表明最终参数可以作为数组或参数序列传递"

从同一来源,最常说的理由是,varargs具有"核心API中的重要用途,包括反射,消息格式化和新的printf工具".

鉴于Java是面向对象的,包括垃圾收集并支持动态数组 Java varargs仅限于单一类型,这有什么优势?(与之相反,例如,C实现了附加功能.)

java variadic-functions

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