小编Sco*_*ion的帖子

构建一个匿名内部类并调用其方法

我搜索了这个,但遗憾的是找不到匹配,我在这样local anonymous inner class的方法中有这个: -

new Object(){
    public void open(){
        // do some stuff
    }
    public void dis(){
        // do some stuff
    }
};
Run Code Online (Sandbox Code Playgroud)

2 methods里面(open,dis),我知道,如果我想使用他们中的任何一个,那就做

new Object(){
    public void open(){
        // do some stuff
    }
    public void dis(){
        // do some stuff
    }
}.open()
Run Code Online (Sandbox Code Playgroud)

现在我的问题是如果我想同时调用这两种方法怎么办我该怎么

java anonymous-inner-class

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

方法next()的迭代器

当我在ArrayList上获取迭代器并在其上使用方法next()时,它是仅返回下一个元素还是从迭代器返回并删除元素.喜欢

Iterator i = list.iterator();
while(i.hasNext())
    System.out.print(i.next()+" ");
Run Code Online (Sandbox Code Playgroud)

java iterator

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

使用java注释和反射获取java.lang.NullPointerException

我写了3个类"PrintDevice,Printer,Test"如下

首先,PrintDevice.java

public @interface PrintDevice{
    String defaultPrint();
    int defaultNumber();
}
Run Code Online (Sandbox Code Playgroud)

第二,Printer.java

@PrintDevice(defaultPrint="print",defaultNumber=5)
public class Printer{
    public Printer(){
        //empty Construcutor
    }
    @PrintDevice(defaultPrint="print",defaultNumber=5)
    public void print(int number){
        System.out.println(number);
    }
}
Run Code Online (Sandbox Code Playgroud)

第三,Test.java

import java.lang.reflect.*;
public class Test{
    public static void main(String[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException{
        Printer printer = new Printer();
        PrintDevice anno = printer.getClass().getAnnotation(PrintDevice.class);
        Method m = printer.getClass().getMethod(anno.defaultPrint(),int.class);
        m.invoke(printer,anno.defaultNumber());
    }
}
Run Code Online (Sandbox Code Playgroud)

并且没有任何问题地编译它们,但是当我尝试运行Test.java时,我得到NullPointerExcetion如下: -

Test.main中线程"main"java.lang.NullPointerException中的异常(Test.java:7)

java reflection annotations nullpointerexception

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

使用"?"时准备语句的问题

嗯,我的问题简明扼要的是"当我写这个?代替表名时它没有给出任何动作"就像这里一样,假设我有......

String full = "update ? set name = ? where id = ?";
Run Code Online (Sandbox Code Playgroud)

但是当我删除第一个?并输入表格名称"一切都很完美"......有什么建议吗?

java mysql jdbc prepared-statement

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

java中的ArrayList声明

这个公式在java中是合法的来声明ArrayList

List<Integer> list1 = new ArrayList<Integer>() {1,2,3,4,5};
Run Code Online (Sandbox Code Playgroud)

java collections arraylist

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