作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有这个类的多个实例:
public class Star {
public Star(ArrayList<Planet> planets, ArrayList<Comet> comets) {
pla = planets;
com = comets;
}
// Getters and setters go here
private ArrayList<Planet> pla;
private ArrayList<Comet> com;
}
我如何使用 Star
的实例?比如说,一个特定的 Planet
属于?例如,请看这个伪代码:
aSpecificPlanet.getInstanceOfClassThisBelongsTo().doStuffWithIt();
我已经在 Planet
之一中尝试过这个的 setter/getter :
public Star getStar() {
return this.getClass();
}
但我收到此错误:incompatible types: Class<CAP#1> cannot be converted to Star
我该怎么做?
最佳答案
您得到的是 Class
实例,而不是 Star
实例。
您可以在 Planet
中添加一个类型为 Star
的字段,该字段将引用它所属的 Star
。每当您将 Planet
添加到 Star
时,都可以设置此字段:
Star star = new Star(planets, comets);
for(Planet planet : planets) {
planet.setStar(star); // add this field
}
您可以将它放在实用程序方法中以避免重复代码并确保一致性:
public void addPlanet(Star star, Planet planet) {
if(star != null && planet != null) {
star.getPlanets().add(planet); // assuming the list is always not null
planet.setStar(star);
}
}
关于java - 如何从属于它的实例变量之一获取类的特定实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26108427/
我是一名优秀的程序员,十分优秀!