Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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 我可以在方法中使用接口吗?_Java - Fatal编程技术网

Java 我可以在方法中使用接口吗?

Java 我可以在方法中使用接口吗?,java,Java,我知道on可以在类的方法中有一个类声明。 我们可以在方法体中使用匿名类声明来处理事件 但我想知道,在类的方法中使用接口声明的方法也是一样的 这有什么用?I'假设您指的是返回方法的接口 简短回答:是的 为什么? 这是一篇好帖子。 摘录: 好处是返回 接口使更改成为可能 以后的实现。例如,你 可能会在一段时间后决定 与其使用LinkedList,不如使用LinkedList 一个ArrayList的 我认为您不能在方法中声明接口。你为什么要这么做? 您只能定义匿名内部类。您可以这样做,一个众所周知

我知道on可以在类的方法中有一个类声明。 我们可以在方法体中使用匿名类声明来处理事件

但我想知道,在类的方法中使用接口声明的方法也是一样的


这有什么用?

I'假设您指的是返回方法的接口

简短回答:是的

为什么?

这是一篇好帖子。

摘录:

好处是返回 接口使更改成为可能 以后的实现。例如,你 可能会在一段时间后决定 与其使用LinkedList,不如使用LinkedList 一个ArrayList的


我认为您不能在方法中声明接口。你为什么要这么做?
您只能定义匿名内部类。

您可以这样做,一个众所周知的例子是接口

例如:

List<Person> persons = personDAO.list();

Collections.sort(persons, new Comparator<Person>() { 
    // Anonymous inner class which implements Comparator interface.
    public int compare(Person one, Person other) {
        return one.getName().compareTo(other.getName());
    }
});
可按如下方式使用:

Collections.sort(persons, Person.ORDER_BY_NAME);

不,你为什么不自己写一个,编译,看看呢


假设一个接口可以在一个方法内部声明,那么它在外部是不可访问的。很难想象这样一个局限在块中的接口有多大用处。另一方面,本地类可能很有用,因为它包含具体的实现

在阅读了fastcodejava的帖子之后,我想我误解了OP。你是指方法中的内部/匿名接口吗?请举例说明你的意思。嵌套接口是隐式静态的,不能在方法体中定义。我想你的例子中有一个匿名类,它是接口比较器的实例。但是我认为OP的问题是接口声明是否可以存在于方法中,这在Java中是不可能的。还是我错过了什么?嗯,这没有任何意义。但我认为你是对的,这实际上是他的问题。我很好奇他想把它用在哪里。为了得到更好的答案,他至少需要用一个他试图实现的具体例子来编辑他的问题。
Collections.sort(persons, Person.ORDER_BY_NAME);