我有一个Wicket页面类,它根据抽象方法的结果设置页面标题.
public abstract class BasicPage extends WebPage {
public BasicPage() {
add(new Label("title", getTitle()));
}
protected abstract String getTitle();
}
Run Code Online (Sandbox Code Playgroud)
NetBeans通过消息"构造函数中的可覆盖方法调用"警告我,但它应该有什么问题呢?我能想象的唯一选择是将其他抽象方法的结果传递给子类中的超级构造函数.但是很多参数很难读懂.
我有一个字节数组和一个对象引用.
byte[] data = new byte[128];
Block b = new Block();
Run Code Online (Sandbox Code Playgroud)
我想在"data"数组的最后2(或4)个字节中存储引用b .
请注意:我不想序列化对象并存储在字节数组中.我需要存储一个引用新块的指针(引用).
编辑
我的Block类如下
public class Block {
byte[] data ;
public Block(){
data = new byte[128];
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,数据数组将使用126个字节来存储字符串,并使用最后两个(或4个)字节来存储对另一个块的引用.它的链接列表.
我本可以使用Block类的不同定义[通过在类本身中包含对Block的引用]来完成它.但是问题语句指出只有最后2个字节的约束应该用作对另一个块的引用.从其他帖子我开始知道在jvm(32位)中,引用的大小为4个字节.因此我认为它只能使用最后4个字节来完成
来自问题陈述的片段
块的最后2个字节用于指向下一个块.假设文件是8块大小,那么第4块的最后2个字节将指向第5块,第5块的最后2个字节指向第6块,依此类推.
我是初学者,所以它真的没有比这简单.
我在一个文件夹中有两个单独的.java文件.
负责狗的"属性"(名称,年龄,品种等)的类.
...
public String name;
public byte age;
public String breed;
public String makeNoise()
{
return "Woof...";
}
public String toString()
{
return "Name: " +name +"\n" +"Age: " +age +"\n" +"Breed: " +breed;
}
...
Run Code Online (Sandbox Code Playgroud)
还有一个测试狗类的测试员.
...
Dog d1 = new Dog();
d1.name = "Frodo";
d1.age = 4;
d1.breed = "Alsatian";
Dog d2 = new Dog();
d2.name = "Labby";
d2.age = 3;
d2.breed = "Labrador";
Dog d3 = d2;
d3.age = 6;
d3.name = "Mike";
System.out.println(d1.name);
System.out.println(d2.age); …Run Code Online (Sandbox Code Playgroud)