假设我们有以下类:
class A {
void recursive(int i) {
System.out.println("A.recursive(" + i + ")");
if (i > 0) {
recursive(i - 1);
}
}
}
class B extends A {
void recursive(int i) {
System.out.println("B.recursive(" + i + ")");
super.recursive(i + 1);
}
}
Run Code Online (Sandbox Code Playgroud)
现在让我们recursive在A班打电话:
public class Demo {
public static void main(String[] args) {
A a = new A();
a.recursive(10);
}
}
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,输出从10减少.
A.recursive(10)
A.recursive(9)
A.recursive(8)
A.recursive(7)
A.recursive(6)
A.recursive(5)
A.recursive(4)
A.recursive(3)
A.recursive(2)
A.recursive(1)
A.recursive(0)
Run Code Online (Sandbox Code Playgroud)
让我们来看看令人困惑的部分.现在我们打电话给recursiveB班.
预期 …
我们在项目中使用JavaServer Faces 2.2(Mojarra 2.2.1).我注意到一些奇怪的事 在reporting.xhtml我使用f:metadata新f:viewAction浏览器的页面上,在这种情况下,Safari显示以下查询字符串:
reporting.jsf?jftfdi=&jffi=reporting%3Ffaces-redirect%3Dtrue
Run Code Online (Sandbox Code Playgroud)
这是什么巫术?jftfdi和jiffi做的参数是什么?他们的目的是什么?
在C中不是很熟练.这可能只是一个新手问题.
我试图写3个字节到文件,但最终得到4.
#include <stdio.h>
#include <stdlib.h>
struct a {
uint8_t x;
uint16_t y;
};
int main()
{
struct a record = { 1, 2 };
FILE *fp = fopen("example.bin", "w");
fwrite(&record, sizeof(struct a), 1, fp);
fclose(fp);
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我最终得到:
$ hexdump -C example.bin
00000000 01 00 02 00 |....|
00000004
Run Code Online (Sandbox Code Playgroud)
我在期待:01 02 00.
这是我的c编译器的版本,以防这是与硬件/编译器相关的.
$ cc --version
Apple LLVM version 9.1.0 (clang-902.0.39.1)
Target: x86_64-apple-darwin17.5.0
Thread model: posix
Run Code Online (Sandbox Code Playgroud) 在处理 JSF 自定义组件时有点卡住了。如果有人能给我一个开端,那就太好了。
这个想法是有一个组件,让我通过一个LocalDate. 想一个更简单的日期选择器。呈现的 HTML 有两个按钮,一个将日期增加一天,另一个按钮将日期减少一天。值本身存储在一个输入隐藏中。附件是组件的一个简单版本,它不起作用,但希望能描述我想要实现的目标。
这个想法是<my:datePager value="#{myBackingBean.someDate}" />在页面上说并在单击任一按钮之一后执行一些逻辑/操作。
例如<my:datePager value="#{myBackingBean.someDate} action="..." />或<my:datePager value="#{myBackingBean.someDate} previous="..." next="..."/>不知道什么更好。
这是我遇到的问题:如何调用组件上的previous和next方法?
到目前为止,这是我的 JSF 2.3 自定义组件:
@FacesComponent(LocalDatePager.COMPONENT_TYPE)
public class LocalDatePager extends UIInput {
public static final String COMPONENT_TYPE = "LocalDatePager";
public LocalDatePager() {
setConverter(LocalDateConverter.INSTANCE);
}
public void previous() {
LocalDate localDate = (LocalDate) getValue();
localDate = localDate.minusDays(1);
setValue(localDate);
}
public void next() {
LocalDate localDate = (LocalDate) getValue();
localDate = localDate.plusDays(1); …Run Code Online (Sandbox Code Playgroud)