我有以下的抽象Java類:如何註釋派生自抽象類的實例變量?
abstract class AbstractDto {
String id;
public void setId(String id) { this.id = id; }
public String getId() {return id; }
}
我也有類擴展抽象類:
class SomeDto extends AbstractDto {
@SomeAnnotation
String id;
}
我想註釋從抽象類派生的一個實例變量。我不確定這是否是我走的路。我知道Java不提供變量重載,所以這是陰影。
public void go(AbstractDto dto) {
println("dto.id: "+dto.id);
}
AbstractDto dto = new SomeDto();
dto.setId("1234");
go(dto);
因爲當我設置SomeDto的ID我的陰影再有就是從還是不能設置AbstractDto繼承了id
變量:
所以,如果我這樣做會發生什麼。
如何註釋抽象超類中定義的實例變量?
編輯:當我做:
SomeDto dto = new SomeDto();
dto.setId("123");
哪個ID是設置一個在AbstractDto或一個在SomeDto? 發生什麼我在抽象類中的方法讀取id然後使用哪個id?
它被稱爲['shadowing'](http://docs.oracle.com/javase/specs/jls/se7 /html/jls-6.html#jls-6.4.1)。這可能會有所幫助:http://stackoverflow.com/questions/16941179/variable-shadowing-in-java – 2015-02-06 22:44:46
這裏唯一的派生是類本身。派生類中的'id'變量不是派生,繼承等。 – EJP 2015-02-06 23:48:57