【发布时间】:2021-10-29 22:31:05
【问题描述】:
我被困在服务加载器类(java)中,任何人都可以帮忙,这是我的代码和附带的图片。 查看图片以完全理解并告诉我问题出在哪里
接口代码
package ServiceLoader_.SL;
interface Account {
String getMessage();
}
实现该接口的类
package ServiceLoader_.SL;
public class Message implements Account {
@Override
public String getMessage() {
return "Hello";
}
}
主类
package ServiceLoader_.SL;
import java.util.ServiceLoader;
public class main {
public static void main(String[] args) {
ServiceLoader<Account> ac = ServiceLoader.load(Account.class);
Account ab = ac.iterator().next();
if(ac.iterator().hasNext()){
System.out.println("hay^");
}
}
}
在尝试访问 ac.iterator().next() 时给出没有找到此类元素的错误
点击 Here查看图片
【问题讨论】:
-
META-INF必须位于类路径根目录中,因此它必须是ServiceLoader_的兄弟。 -
使用
Iterator的一般方法是调用hasNext()之前next()。并且在同一个迭代器上,而不是调用iterator()两次。
标签: java service loader serviceloader