如果有人问过这个问题,请原谅.我的搜索没有提出任何其他类似的问题.这让我在Java中感到惊讶.
显然,增强的for循环只接受一个数组或一个实例java.lang.Iterable.它不接受java.util.Iterator作为迭代的有效obj引用.例如,Eclipse显示以下代码的错误消息.它说:" 只能迭代数组或java.lang.Iterable的实例 "
Set<String> mySet = new HashSet<String>();
mySet.add("dummy");
mySet.add("test");
Iterator<String> strings = mySet.iterator();
for (String str : strings) {
// Process str value ...
}
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我想知道为什么增强的for循环被设计为以这种方式工作.虽然Iterator不是集合,但它可以用于从集合中一次返回一个元素.请注意,java.lang.Iterable接口中唯一的方法是Iterator<T> iterator()返回一个Iterator.在这里,我直接交给他Iterator.我知道hasNext()并且next()可以使用但是使用增强的for循环使它看起来更干净.
我现在理解的一件事是我可以直接使用增强的for循环mySet.所以我甚至不需要额外的电话来获得Iterator.所以,这将是对此进行编码的方式,是的 - 它确实有意义.
该网站https://ethstats.net显示有关以太坊网络的统计信息,但我没有找到所显示的每个统计信息和图表的精确定义。我可以在某处获得此信息吗?
我有一个组织的私有 GitHub 存储库,我正在尝试使用浏览器中的 Heroku 仪表板将 Heroku 应用程序连接到该存储库。在我的 GitHub 帐户(链接到 Heroku)的设置中,在OAuth Applications 下,我可以看到Heroku Dashboard,在Permissions下,它说Full control of private repositories。
但是,当我导航到 Heroku 应用程序页面并从选择列表中选择此 GitHub 存储库并单击Connect 时,我收到消息:
Item could not be modified:
Admin access to repository required
Run Code Online (Sandbox Code Playgroud)
在 GitHub 上,我的帐户对 repo具有写入权限。此外,如上所述,Heroku Dashboard 拥有对私有存储库的完全控制权。任何人都可以帮我弄清楚需要在何处授予哪些访问权限?我真的很感激。
我在控制器类中定义了一个 REST 服务操作,如图所示:
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Path("create")
public Response createWidget(@BeanParam Widget widget) {
...
}
Run Code Online (Sandbox Code Playgroud)
Widget 是一个 POJO bean 类,即 2 个名为foo&bar类型的私有字段,String带有公共 getter 和 setter,以及一个公共无参数构造函数。
POST 请求正文是:
{ "foo": "Some text", "bar": "Some more text" }
Run Code Online (Sandbox Code Playgroud)
并有标题 Content-Type: application/json
在触发此请求时,该createWidget方法获取一个Widget对象作为参数,但两个String字段都是null.
有人可以告诉我填充字段还需要什么吗?我认为在 POJO bean 类中可能需要一些注释。如果内容类型是application/x-www-form-urlencoded,那么我知道应该对字段进行注释@FormParam,但我不确定内容的注释应该是什么application/json。
非常感谢您的帮助... - Ajoy