Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以接口作为参数的方法 class-Do{ void doit(){ ClassA=新ClassA(); a、 doSomething(>>>此处代码_Java - Fatal编程技术网

Java 以接口作为参数的方法 class-Do{ void doit(){ ClassA=新ClassA(); a、 doSomething(>>>此处代码

Java 以接口作为参数的方法 class-Do{ void doit(){ ClassA=新ClassA(); a、 doSomething(>>>此处代码,java,Java,关键是用初始值设定项定义一个匿名类,然后使用“new”创建该类的新对象。创建该对象将执行初始值设定项。p.S.这已经过测试 这似乎不是一个好的测验问题;做这样的事情是相当晦涩的,可能不是一种正常的编码方式。它看起来更像是一个谜题,而不是一个实际的测试问题。除非有更好的答案我没有发现 关键是用初始值设定项定义一个匿名类,然后使用“new”创建该类的新对象。创建该对象将执行初始值设定项。p.S.这已经过测试 这似乎不是一个好的测验问题;做这样的事情是相当晦涩的,可能不是人们实际编写代码的正常方式。它

关键是用初始值设定项定义一个匿名类,然后使用“new”创建该类的新对象。创建该对象将执行初始值设定项。p.S.这已经过测试

这似乎不是一个好的测验问题;做这样的事情是相当晦涩的,可能不是一种正常的编码方式。它看起来更像是一个谜题,而不是一个实际的测试问题。除非有更好的答案我没有发现

关键是用初始值设定项定义一个匿名类,然后使用“new”创建该类的新对象。创建该对象将执行初始值设定项。p.S.这已经过测试


这似乎不是一个好的测验问题;做这样的事情是相当晦涩的,可能不是人们实际编写代码的正常方式。它看起来更像一个谜题,而不是一个实际的测试问题。除非有更好的答案我没有发现…

我不知道这是否是测验的预期答案,但这应该是工作:

class Do{
    void doit(){
        ClassA a = new ClassA();
        a.doSomething(new InterfaceA () {
             { System.out.println("Hello world"); }
             @Override public void doSomethingElse() { }
             });
    }
}
基本上,只需将这两行放在同一行上,就不必为接口提供实现。唯一添加的代码是
null);System.out.println(“Hello world!”

灵感来自:


这可能更像是一个谜语式的答案,是一个技术性的测验……除非你的老师想和你玩得开心。

我不知道这是否是测验的预期答案,但这应该是有效的:

class Do{
    void doit(){
        ClassA a = new ClassA();
        a.doSomething(new InterfaceA () {
             { System.out.println("Hello world"); }
             @Override public void doSomethingElse() { }
             });
    }
}
基本上,只需将这两行放在同一行上,就不必为接口提供实现。唯一添加的代码是
null);System.out.println(“Hello world!”

灵感来自:


这可能更像是一个谜语式的答案,是一个技术性的测验……除非你的老师想和你玩得开心。

好的,如果测验问题是这样的:

class Do{
    void doit(){
        ClassA a = new ClassA();
        a.doSomething(null); System.out.println("Hello world!");
               //    ^ starting paren           closing paren ^
    }
}
interface InterfaceA{
    void doSomethingElse();
}
class ClassA{
    void doSomething(InterfaceA f){
    }
}

否则,答案会像其他答案所说的那样奇怪。

好的,如果测验问题看起来像这样:

class Do{
    void doit(){
        ClassA a = new ClassA();
        a.doSomething(null); System.out.println("Hello world!");
               //    ^ starting paren           closing paren ^
    }
}
interface InterfaceA{
    void doSomethingElse();
}
class ClassA{
    void doSomething(InterfaceA f){
    }
}


否则,答案会像其他答案所说的那样奇怪。

这不可能像上面所说的那样。在
ClassA
doSomething
方法中是否有一些代码?我想会有类似
f.doSomethingElse()的代码
在该方法的主体中。这不可能是正确的代码,因为唯一能回答这个问题的方法是,如果类a中的doSomethingElse在f中被称为doSomethingElse。如果它这样做了,我会扔给你一根骨头,告诉你如何实现这一点,但从外观上看,给定代码,就无法打印任何东西。你确定这是正确的问题吗我同意@dasblinkenlight。谢谢你的评论,但这正是我被问到的问题:(…这是来自其他版本的测验的问题,但它们仍然是相同的(只是不同的对象名称)你手上真的有测验吗?它是这么说的吗?因为真的没有办法回答这个问题,除非doSomething调用doSomethingElse on f。如果测验题没有这样做,那么谁写的都搞砸了,无法回答。这不可能是上面所说的方式。t中有代码吗他
doSomething
方法的
ClassA
?我想会有类似于
f.doSomethingElse()
在该方法的主体中。这不可能是正确的代码,因为唯一能回答这个问题的方法是,如果类a中的doSomethingElse在f中被称为doSomethingElse。如果它这样做了,我会扔给你一根骨头,告诉你如何实现这一点,但从外观上看,给定代码,就无法打印任何东西。你确定这是正确的问题吗我同意@dasblinkenlight。谢谢你的评论,但这正是我被问到的问题:(…这是来自其他版本的测验的问题,但它们仍然是相同的(只是不同的对象名称)你手上真的有测验吗?它是这么说的吗?因为除非doSomething调用doSomethingElse on f,否则真的没有办法回答这个问题。如果测验题没有这样做,那么无论是谁写的都会出错,无法回答。哇,这很有效!!!感谢你的帮助!!!!是的,我的新第二学期Java instructor有点奇怪。在课堂上,尽管我一直很注意,但我仍然无法通过他的实验室测验:((,我很恐慌,如果这是正确的答案,那么在我看来这是奇怪和不公平的。这与接口无关,而是匿名的内部类和静态init。@谢谢你的帮助如果这是你的教授希望你知道的事情,那么我不知道他认为他在教什么。没有人应该这样做。如果是我,我会的uld会亲自问他,以确保这是一个诡计性的问题,答案非常模糊。我怀疑是否有人答对了。@Radiodef事实上,我认为在匿名类中放置初始值设定项有一些有效的用例,特别是因为你不能用参数定义构造函数,所以如果你想添加字段,你必须找到一种初始化它们的方法。简而言之,我相信Java(Flanagan)我有一个这样的例子。但我同意这是一个不公平的问题,除非它是额外的学分,或者除非他们在类中检查了这种用例。哦,是的,我对向匿名内部类添加新内容而不是仅仅重写没有问题。但是插入方法调用我想似乎很疯狂。哇,这很有效!!!感谢您的支持您的帮助!!!!是的,我的新的第二学期Java讲师有点奇怪@@。在课堂上,尽管我一直很注意,但我仍然不能“pas”
a.doSomething(>>>CODE HERE<<<);
a.doSomething(new InterfaceA() {
    @Override public void doSomethingElse() {
        System.out.println("Hello world!");
    }
});